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 позиций.