Leetcode 59 Solution
This article provides solution to leetcode question 59 (spiral-matrix-ii)
Access this page by simply typing in "lcs 59" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/spiral-matrix-ii
Solution
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
int i = 0;
int j = 0;
vector<vector<int>> a;
if (n == 0)
return a;
for (int i = 0; i < n; i++)
a.push_back(vector<int>(n));
int di = 0;
int dj = 1;
int k = 1;
while (true)
{
a[i][j] = k;
if (k == n * n)
break;
if (dj == 1 && (j + dj >= n || a[i][j + dj] != 0))
{
di = 1, dj = 0;
continue;
}
else if (dj == -1 && (j + dj < 0 || a[i][j + dj] != 0))
{
di = -1, dj = 0;
continue;
}
else if (di == 1 && (i + di >= n || a[i + di][j] != 0))
{
di = 0, dj = -1;
continue;
}
else if (di == -1 && (i + di < 0 || a[i + di][j] != 0))
{
di = 0, dj = 1;
continue;
}
i += di;
j += dj;
k++;
}
return a;
}
};