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;
}
};
通过时间:

本文介绍了一种螺旋矩阵生成算法,该算法接收一个正整数n作为输入,生成一个n×n的正方形矩阵,其中包含从1到n²的所有整数,并按照顺时针螺旋方向填充。文章详细展示了算法实现过程,包括如何处理边界条件。
8万+

被折叠的 条评论
为什么被折叠?



