原题链接:Leecode 59. 螺旋矩阵 II
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> g(n,vector<int>(n));
int i=0,j=0,cur=1;
int l=0,r=n-1,h=0,d=n-1,t=0;
while(n)
{
if(n==1)
{
g[i][j]=cur++;
break;
}
int len=4*n-4;
n-=2;
while(len)
{
g[i][j]=cur++;
len--;
if(t==0)
{
if(j==r) { t=1; i++; continue; }
j++;
}
else if(t==1)
{
if(i==d) { t=2; j--; continue; }
i++;
}
else if(t==2)
{
if(j==l) { t=3; i--; continue; }
j--;
}
else if(t==3)
{
if(i==(h+1))
{
t=0; j++;
l++; r--; h++; d--;
continue;
}
i--;
}
}
}
return g;
}
};