Проблема:
Операция поворота влево для массива размером 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 г.