给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> res(n,vector<int>(n));
int num = 1,c =0;
while(num <= n*n){
for(int i =c;i<n-c;i++)
res[c][i] = num++;
for(int i=c+1;i<n-c;i++)
res[i][n-c-1] = num++;
for(int i= n-c-2;i >= c;i--)
res[n-c-1][i] = num++;
for(int i=n-c-2;i>c;i--)
res[i][c] = num++;
c++;
}
return res;
}