Задача 13: Сдвиг 2D сетки

Напишите определение функции shiftGrid(grid: List[List[int]], k: int) -> List[List[int]], которая принимает на вход 2D-список grid размером m x n и целое число k.

Функция должна выполнить k сдвигов элементов в сетке и вернуть итоговую сетку.


Описание сдвига:

  1. Элемент в grid[i][j] перемещается в grid[i][j + 1].
  2. Элемент в grid[i][n - 1] перемещается в grid[i + 1][0].
  3. Элемент в 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]]

0

Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии