Leetcode 1260 二维网格迁移 ( Shift 2D Grid *Easy* ) 题解分析
题目介绍
Given a 2D grid
of size m x n
and an integer k
. You need to shift the grid k
times.
In one shift operation:
Element at grid[i][j]
moves to grid[i][j + 1]
.
Element at grid[i][n - 1]
moves to grid[i + 1][0]
.
Element at grid[m - 1][n - 1]
moves to grid[0][0]
.
Return the 2D grid after applying shift operation k
times.
示例
Example 1:
Input: grid = [[1,2,3],[4,5,6],[7,8,9]], k = 1
Output: [[9,1,2],[3,4,5],[6,7,8]]
Example 2:
Input: grid = [[3,8,1,9],[19,7,2,5],[4,6,11,10],[12,0,21,13]], k = 4
Output: [[12,0,21,13],[3,8,1,9],[19,7,2,5],[4,6,11,10]]
Example 3:
Input: grid = [[1,2,3],[4,5,6],[7,8,9]], k = 9
Output: [[1,2,3],[4,5,6],[7,8,9]]
提示
m == grid.length
n == grid[i].length
1 <= m <= 50
1 <= n <= 50
-1000 <= grid[i][j] <= 1000
0 <= k <= 100
解析
这个题主要是矩阵或者说数组的操作,并且题目要返回的是个 List,所以也不用原地操作,只需要找对位置就可以了,k 是多少就相当于让这个二维数组头尾衔接移动 k 个元素
代码
1 | public List<List<Integer>> shiftGrid(int[][] grid, int k) { |
结果数据
比较慢