Skip to content

Commit 5a0930c

Browse files
authored
Create 885. Spiral Matrix III (#550)
2 parents f63e63d + 203d230 commit 5a0930c

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

885. Spiral Matrix III

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
class Solution {
2+
public:
3+
vector<vector<int>> spiralMatrixIII(int rows, int cols, int rStart,
4+
int cStart) {
5+
vector<vector<int>> res;
6+
int i = rStart, j = cStart;
7+
char dir = 'R';
8+
int steps = 0;
9+
10+
res.push_back({rStart, cStart});
11+
12+
while (res.size() != rows * cols) {
13+
if (dir == 'R' || dir == 'L') {
14+
steps++;
15+
}
16+
int curSteps = steps;
17+
while (curSteps--) {
18+
if (dir == 'R') {
19+
j = j + 1;
20+
} else if (dir == 'L') {
21+
j = j - 1;
22+
} else if (dir == 'U') {
23+
i = i - 1;
24+
} else if (dir == 'D') {
25+
i = i + 1;
26+
}
27+
if (i >= 0 && i < rows && j >= 0 && j < cols) {
28+
res.push_back({i, j});
29+
}
30+
}
31+
if (dir == 'R') {
32+
dir = 'D';
33+
} else if (dir == 'L') {
34+
dir = 'U';
35+
} else if (dir == 'U') {
36+
dir = 'R';
37+
} else if (dir == 'D') {
38+
dir = 'L';
39+
}
40+
}
41+
return res;
42+
}
43+
};

0 commit comments

Comments
 (0)