Программа курса:
Задача 13: Сдвиг 2D сетки
Напишите определение функции shiftGrid(grid: List[List[int]], k: int) -> List[List[int]], которая принимает на вход 2D-список grid размером m x n и целое число k.
Функция должна выполнить k сдвигов элементов в сетке и вернуть итоговую сетку.
Описание сдвига:
- Элемент в
grid[i][j]перемещается вgrid[i][j + 1]. - Элемент в
grid[i][n - 1]перемещается вgrid[i + 1][0]. - Элемент в
grid[m - 1][n - 1]перемещается вgrid[0][0].
После выполнения всех k сдвигов необходимо вернуть измененный 2D-список.
Примеры:
Пример 1:
Вход:grid = [[1,2,3], [4,5,6], [7,8,9]], k = 1
Схема начального состояния:
1 2 3
4 5 6
7 8 9
После одного сдвига:
9 1 2
3 4 5
6 7 8
Выход:[[9, 1, 2], [3, 4, 5], [6, 7, 8]]
Пример 2:
Вход:grid = [[3,8,1,9], [19,7,2,5], [4,6,11,10], [12,0,21,13]], k = 4
Схема начального состояния:
3 8 1 9
19 7 2 5
4 6 11 10
12 0 21 13
После четырех сдвигов:
12 0 21 13
3 8 1 9
19 7 2 5
4 6 11 10
Выход:[[12, 0, 21, 13], [3, 8, 1, 9], [19, 7, 2, 5], [4, 6, 11, 10]]
Пример 3:
Вход:grid = [[1,2,3], [4,5,6], [7,8,9]], k = 9
Схема начального состояния:
1 2 3
4 5 6
7 8 9
После девяти сдвигов (равно числу элементов в сетке):
1 2 3
4 5 6
7 8 9
Выход:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]