Spiral Matrix II 螺旋矩阵II
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
输入:
3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
方法一:模拟螺旋遍历
用left,right,up,down记录
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> matrix(n,vector<int>(n));
int left=0,right=n-1,up=0,down=n-1;
int k=1;
vector<int>res;
while(true){
for(int i=left;i<=right;i++){
matrix[up][i]=k++;
}
if(++up>down)break;
for(int j=up;j<=down;j++){
matrix[j][right]=k++;
}
if(--right<left) break;
for(int i=right;i>=left;i--){
matrix[down][i]=k++;
}
if(--down<up) break;
for(int j=down;j>=up;j--){
matrix[j][left]=k++;
}
if(++left>right) break;
}
return matrix;
}
};