Проблема:

Операция поворота влево для массива размером n сдвигает каждый из элементов массива на 1 единицу влево. Например, если выполнить 2 поворота влево для массива [1, 2, 3, 4, 5], массив станет [3, 4, 5, 1, 2].

Дан массив из n целых чисел и числа d, выполнить d поворотов массива влево. Затем напечатайте обновленный массив в виде одной строки целых чисел, разделенных пробелами.

Прочитайте полную задачу здесь: Левое вращение

Решение:

Это очень простая проблема. На приведенном выше рисунке мы видим, что после двух поворотов элемент с индексом 2 становится первым элементом в новом массиве. Таким образом, после поворотов d элемент с индексом d является первым элементом. И все элементы после d-го элемента с последующими.

Теперь в новый повернутый массив добавляются элементы от 0 до индексов d-1.

Реализация C++ на Programmercave

Другие проблемы и решения соревновательного программирования

Повторяющаяся строка
Выбор номеров

Первоначально опубликовано на https://programmercave0.github.io 25 апреля 2020 г.