二维数组移动
题目描述:
解法1:
将二维数组转换为一维数组的同时将数组元素依次向后移。
int[] nums = new int[grid.length*grid[0].length];
//将网格中的数据放到一个一维数组中并实现移位
for(int i=0;i<grid.length;i++){
for(int j=0;j<grid[0].length;j++){
k %= nums.length;
nums[k++] = grid[i][j];
}
}
解法2:
将二维数组转换到一个新的二维数组中
newArray[(i+(j+k)/n)%m][(j+k)%n] = oldArray[i][j];
k是要移动的步数。