链接: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;
}
};
本文提供了一种解决LeetCode上二维网格位移问题的C++代码实现方案。通过模拟的方式,对二维网格进行指定次数的右移和下移操作,详细展示了如何处理边界条件,以及如何有效地进行元素的重新排列。
158

被折叠的 条评论
为什么被折叠?



