链接:https://leetcode-cn.com/problems/shift-2d-grid/
模拟即可。
C++代码:
class Solution {
public:
vector<vector<int>> shiftGrid(vector<vector<int>>& grid, int k) {
int m = grid.size();
int n = grid[0].size();
k %= (m*n);
int down = k/n;
for(int i = 0;i<down;i++)
{
vector<int> temp = grid[m-1];
for(int j = m-1;j>=1;j--)
grid[j] =grid[j-1];
grid[0] = temp;
}
k = k%n;
for(int i = 0;i<k;i++)
{
vector<int>temp(m);
temp[0] = grid[m-1][n-1];
for(int j = 1;j<m;j++)
temp[j] = grid[j-1][n-1];
for(int j = n-1;j>=1;j--)
for(int l = 0;l<m;l++)
grid[l][j] = grid[l][j-1];
for(int j = 0;j<m;j++)
grid[j][0] = temp[j];
}
return grid;
}
};