主页 > 其他  > 

LeetCode59螺旋矩阵II


螺旋矩阵 II 循环不变量的应用

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

示例 1:

输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 示例 2:

输入:n = 1 输出:[[1]]

提示:

1 <= n <= 20

class Solution { public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>>matrix(n,vector<int>(n,0));//要求返回vector<vector<int>> int startx=0,starty=0;//定义动起点本身 int notxy=1;//定义动终点的标识 int num=1;//定义填入的数字,初始1 int loop=n/2; if(n%2)matrix[loop][loop]=n*n;//奇数情况里面最里面的,但不是圈那个数字为平方,即最终数 while(loop--){//遍历n的一半次数 int i,j;//定义在此循环结束生命周期完毕回收 for(j=starty;j<n-notxy;++j)matrix[startx][j]=num++; for(i=startx;i<n-notxy;++i)matrix[i][j]=num++; for(;j>starty;--j)matrix[i][j]=num++; for(;i>startx;--i)matrix[i][j]=num++; ++startx;++starty;++notxy; } return matrix; } };
标签:

LeetCode59螺旋矩阵II由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“LeetCode59螺旋矩阵II