Spiral Matrix III
https://leetcode.com/problems/spiral-matrix-iii/description/
Thoughts
Code
class Solution {
public:
vector<vector<int>> spiralMatrixIII(int R, int C, int r0, int c0) {
vector<vector<int>> res(R * C, vector<int>(2));
int dir[][2]{{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
int r = r0, c = c0, di = 0, step = 1;
for (int i = 0; i < R * C;) {
for (int j = 0; j < 2; ++j) {
for (int k = 0; k < step; ++k) {
if (r >= 0 && r < R && c >= 0 && c < C) {
res[i++] = {r, c};
}
r += dir[di][0];
c += dir[di][1];
}
di = (di + 1) % 4;
}
++step;
}
return res;
}
};Analysis
Last updated
