题目链接:1260. 二维网格迁移
将二维网格展平成为一维数组,那么每迁移一次,就是将这个一维数组的所有元素循环右移一位。
from typing import List
class Solution:
def shiftGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
m = len(grid)
assert m > 0
n = len(grid[0])
assert n > 0
ret = [[0] * n for _ in range(m)]
for i in range(m):
for j in range(n):
idx = (i * n + j + k) % (m * n)
r, c = divmod(idx, n)
ret[r][c] = grid[i][j]
return ret