1
class Solution {
2
public:
3
vector<vector<int>> generateMatrix(int n) {
4
vector<vector<int>> vec(n, vector<int>(n, 0));
5

6
vector<int> helper;
7
for (int i = 0; i < n * n; i++) {
8
helper.push_back(i + 1);
9
}
10

11
int k = 0;
12
int top = 0;
13
int down = n - 1;
14

15
int left = 0;
16
int right = n - 1;
17

18
int direction = 0;
19

20
vector<int> result;
21

22
while (top <= down and left <= right) {
23
if (direction == 0) {
24
for (int i = left; i <= right; i++) {
25
vec[top][i] = helper[k];
26
k++;
27
}
28
top++;
29
} else if (direction == 1) {
30
for (int i = top; i <= down; i++) {
31
vec[i][right] = helper[k];
32
k++;
33
}
34
right--;
35
} else if (direction == 2) {
36
for (int i = right; i >= left; i--) {
37
vec[down][i] = helper[k];
38
k++;
39
}
40
down--;
41
} else if (direction == 3) {
42
for (int i = down; i >= top; i--) {
43
vec[i][left] = helper[k];
44
k++;
45
}
46
left++;
47
}
48
direction = (direction + 1) % 4;
49
}
50
return vec;
51
}
52
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0