Циклический сдвиг массива в Python
Элементы, вышедшие с одного края, появляются с другого.
Что такое Циклический сдвиг массива в Python?
Элементы, вышедшие с одного края, появляются с другого.
Сдвиньте элементы на k позиций по кругу.
Когда это использовать?
- Понимать алгоритмы и структуры данных.
- Наблюдать каждый шаг и проверять граничные случаи.
- Сравнивать время работы и память.
Пример кода
main.py
def rotate_right(values, steps):
if not values:
return []
steps %= len(values)
return values[-steps:] + values[:-steps]
print(rotate_right([1, 2, 3, 4, 5], 2))
Ожидаемый результат
[4, 5, 1, 2, 3]
Как это работает
k нормализуется по длине, затем объединяются два среза: время и память O(n).
Измените значения и запустите программу в онлайн-компиляторе Python CodeUtility без локальной установки Python.
Практические задания
Изменяйте входные данные и проверяйте граничные случаи перед работой с большими наборами.
- Проверьте пустой ввод, один элемент и дубликаты.
- Выводите состояние после каждого шага.
- Сравните производительность с другим решением.