leetcode

Solution 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]);
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 }
21 return grid;
22 }
23 };