Встречается на собеседованиях • сегодня

Как сдвинуть элементы на n шагов в массиве

Для сдвига элементов массива на n шагов можно использовать следующий подход:

  1. Вычисление реального сдвига: n может быть больше длины массива, поэтому берем n % array.length.
  2. Разделение массива: разбиваем массив на две части — элементы до сдвига и после.
  3. Объединение частей: соединяем эти части в обратном порядке.

Пример кода:

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) по памяти) и использует тройной разворот массива.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы