1260. 二维网格迁移

exiaohu 于 2022-07-20 发布

题目链接: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