Поворотом влево в списке называется операция смещения элементов списка влево на указанное количество позиций. Вот несколько способов выполнить поворот списка влево:
- Использование срезов.
Один простой метод — использовать срез списка для извлечения подсписка, начиная с желаемой позиции поворота, и объединения его с подсписком от начала списка до позиции поворота. Вот пример на Python:
def left_rotate_list(arr, k):
return arr[k:] + arr[:k]
- Использование Pop и Append:
Другой подход заключается в многократном извлечении первого элемента списка и добавлении его в конец списка на желаемое количество оборотов. Вот пример использования Python:
def left_rotate_list(arr, k):
for _ in range(k):
arr.append(arr.pop(0))
return arr
- Использование объединения списков.
Вы также можете добиться поворота влево, объединив подсписок, начиная с позиции поворота, с подсписком, начиная с начала списка. Вот пример на Python:
def left_rotate_list(arr, k):
return arr[k:] + arr[:k]
- Использование Deque:
Структуру данных deque (двусторонняя очередь) можно использовать для эффективного выполнения вращения влево путем вращения элементов по кругу. Вот пример использования модуля Pythoncollections:
from collections import deque
def left_rotate_list(arr, k):
d = deque(arr)
d.rotate(-k)
return list(d)