Sobes.tech
Junior — Middle
112

Массивдин элементтерин белгиленген орундар санына айландыруу кантип ишке ашырылат?

Кайсыл жерде компаниялар сурады
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 позиций.