leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
1914.cpp (905B)
0 class Solution { 1 public: 2 vector<vector<int>> rotateGrid(vector<vector<int>> &grid, int k) const { 3 const int n = size(grid), m = size(grid[0]); 4 5 for (int l = 0; l < n / 2 && l < m / 2; l++) { 6 const int elems = (m + n - 4 * l - 2) * 2; 7 for (int count = 0; count < k % elems; count++) { 8 const int tmp = grid[l][l]; 9 for (int j = l + 1; j < m - l; j++) 10 grid[l][j - 1] = grid[l][j]; 11 for (int i = l + 1; i < n - l; i++) 12 grid[i - 1][m - l - 1] = grid[i][m - l - 1]; 13 for (int j = m - l - 2; j >= l; j--) 14 grid[n - l - 1][j + 1] = grid[n - l - 1][j]; 15 for (int i = n - l - 2; i >= l; i--) 16 grid[i + 1][l] = grid[i][l]; 17 grid[l + 1][l] = tmp; 18 } 19 } 20 21 return grid; 22 } 23 };