Sobes.tech
Junior — Middle
102

Массив элементтерін берілген санға айналдыруды қалай жүзеге асыруға болады?

Сұралған компаниялар
Red Collar

AI-дан жауап

sobes.tech AI

Для вращения элементов массива на заданное число позиций можно использовать несколько подходов. Один из простых и эффективных способов — использовать реверс (переворот) частей массива.

Пример вращения массива вправо на k позиций:

public static void rotate(int[] arr, int k) {
    int n = arr.length;
    k = k % n; // на случай, если k больше длины массива

    reverse(arr, 0, n - 1);
    reverse(arr, 0, k - 1);
    reverse(arr, k, n - 1);
}

private static void reverse(int[] arr, int start, int end) {
    while (start < end) {
        int temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
        start++;
        end--;
    }
}

Этот метод сначала переворачивает весь массив, затем переворачивает первые k элементов и после этого оставшиеся элементы. В итоге массив сдвигается на k позиций вправо.

Если нужно вращать влево, можно адаптировать логику или вращать вправо на n - k позиций.