classSolution{public:
vector<vector<int>>rotateGrid(vector<vector<int>>& grid,int k){int m = grid.size();int n = grid[0].size();int layNum =min(m,n)/2;// int rotateNum = k % ((m + n - 4 * i - 2) * 2); for(int i =0; i < layNum;++i){for(int j =0; j < k %((m + n -4* i -2)*2);++j){int tmp = grid[i][i];// 逆时针旋转第一行for(int x = i; x < n -1- i; x++){
grid[i][x]= grid[i][x +1];}// 旋转最后一列for(int x = i; x < m -1- i; x++){
grid[x][n -1- i]= grid[x +1][n -1- i];}// 旋转最后一行for(int x = n -1- i; x > i; x--){
grid[m -1- i][x]= grid[m -1- i][x -1];}// 旋转第一列for(int x = m -1- i; x > i; x--){if(x -1== i){
grid[x][i]= tmp;}else{
grid[x][i]= grid[x -1][i];}}}}return grid;}};