題目描述:
給定一個正整數 n,生成一個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。
示例:
輸入: 3
輸出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> res(n,vector<int>(n));//建立二維數組
int up=0;
int down=n-1;
int left=0;
int right=n-1;
int num=1;
while(true){
for(int i=left;i<=right;i++){
res[up][i]=num++;
}
if(++up>down)
break;
for(int i=up;i<=down;i++){
res[i][right]=num++;
}
if(--right<left)
break;
for(int i=right;i>=left;i--){
res[down][i]=num++;
}
if(--down<up)
break;
for(int i=down;i>=up;--i){
res[i][left]=num++;
}
if(++left>right)
break;
}
return res;
}
};