定义上下左右可以实现螺旋
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> matrix(n, vector<int>(n));
int l=0,r=n-1, u=0,d=n-1,a=1;
while(true){
for(int i=l;i<=r;i++){
matrix[u][i]=a;
a++;
}
u=u+1;
if(u>d) break;
for(int i=u;i<=d;i++){
matrix[i][r]=a;
a++;
}
r=r-1;
if(l>r) break;
for(int i=r;i>=l;i--){
matrix[d][i]=a;
a++;
}
d=d-1;
if(u>d) break;
for(int i=d;i>=u;i--){
matrix[i][l]=a;
a++;
}
l=l+1;
if(l>r) break;
}
return matrix;
}
};