网站建设专题页,html5旅游网站源码,锦州网站做优化,在手机上自建网站怎么弄给你一个正整数 n #xff0c;生成一个包含 1 到 n2 所有元素#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1#xff1a; 输入#xff1a;n 3
输出#xff1a;[[1,2,3],[8,9,4],[7,6,5]]
示例 2#xff1a;
输入#xff1a;n 1
输出生成一个包含 1 到 n2 所有元素且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1 输入n 3
输出[[1,2,3],[8,9,4],[7,6,5]]
示例 2
输入n 1
输出[[1]]
代码如下
class Solution {
public:vectorvectorint generateMatrix(int n) {vectorvectorint res(n,vectorint(n,0));int up0;//定义上边界int downn-1;//下边界int left0;//左边界int rightn-1;//右边界int num1;//里面插入的数字由1开始while(numn*n)//插入到n*n为止{for(int ileft;iright;i)//从左到右遍历{res[up][i]num;}if(updown)//用up,不是up -原因先更新up的值再与down进行比较{break;//重新定义上边界}for(int iup;idown;i)//从上到下{res[i][right]num;}if(--rightleft)//用--right,不是right-- -原因先更新right的值再与left进行比较{break;//重新定义右边界}for(int iright;ileft;i--)//从右到左{res[down][i]num;}if(--downup)//用--down,不是down-- -原因先更新down的值再与up进行比较{break;//重新定义下边界}for(int idown;iup;i--)//从下到上{res[i][left]num;}if(leftright)//用left,不是left -原因先更新left的值再与right进行比较{break;//重新定义左边界}}return res;}
};