二维网格迁移
class Solution {
public List<List<Integer>> shiftGrid(int[][] grid, int k) {
//迁移k次
for (;k > 0; k --) {
//最后一个元素,或者说右下角
int previous = grid[grid.length - 1][grid[0].length - 1];
for (int row = 0; row < grid.length; row ++) {
for (int column = 0; column < grid[0].length; column ++) {
//进行一次迁移,但每个元素都需要移动,二维数组需要一个二重循环
int temp = grid[row][column];
grid[row][column] = previous;
previous = temp;
}
}
}
//结果
List<List<Integer>> result = new ArrayList<>();
//此时的grid二维数组已完成迁移
//grid中的每一行
for (int[] row : grid) {
List<Integer> listRow = new ArrayList<>();
//二维数组,按行加入
//把有意义的头指针加入到结果二维链表中,下面的for循环
result.add(listRow);
//grid每一行中的每一个元素
for (int r : row)
listRow.add(r);
}
return result;
}
}