思路:和之前的螺旋矩阵那道题类似,跟着螺旋的路线一个个的赋值即可。
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int> > ans(n,vector<int>(n,0));
int c=(n+1)/2;
int val=1;
for(int i=0;i<c;++i,n-=2)
{
for(int col=i;col<i+n;++col)
ans[i][col]=val++;
if(n==1) return ans;
for(int row=i+1;row<i+n;++row)
ans[row][i+n-1]=val++;
for(int col=i+n-2;col>=i;--col)
ans[i+n-1][col]=val++;
for(int row=i+n-2;row>i;--row)
ans[row][i]=val++;
}
return ans;
}
};