Встречается на собеседованиях • сегодня
Как сдвинуть элементы на n шагов в массиве
Для сдвига элементов массива на n шагов можно использовать следующий подход:
- Вычисление реального сдвига:
nможет быть больше длины массива, поэтому беремn % array.length. - Разделение массива: разбиваем массив на две части — элементы до сдвига и после.
- Объединение частей: соединяем эти части в обратном порядке.
Пример кода:
java
public static void rotate(int[] nums, int k) {
k = k % nums.length;
reverse(nums, 0, nums.length - 1);
reverse(nums, 0, k - 1);
reverse(nums, k, nums.length - 1);
}
private static void reverse(int[] nums, int start, int end) {
while (start < end) {
int temp = nums[start];
nums[start] = nums[end];
nums[end] = temp;
start++;
end--;
}
}Этот метод эффективен (O(n) по времени, O(1) по памяти) и использует тройной разворот массива.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы