59.螺旋矩阵
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
- 注意边界
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int> > res(n,vector<int>(n,0));
int count = 1;
int up = 0,left = 0,right = n-1,down = n-1;
while(1){
for(int i = left;i <= right;i++) res[up][i] = count++;
if(++up > down) break;
for(int i = up;i <= down;i++) res[i][right] = count++;
if(--right < left) break;
for(int i = right;i >= left;i--) res[down][i] = count++;
if(--down < up) break;
for(int i = down;i >= up;i--) res[i][left] = count++;
if(++left > right) break;
}
return res;
}
};
通过时间: