[leetcode] 59. Spiral Matrix II

网友投稿 238 2022-08-26

[leetcode] 59. Spiral Matrix II

Description

Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

Example:

Input:

3

Output:

[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]

分析

题目的意思是:实现一个n*n大小的螺旋矩阵。

这道题的思路很直接,按照规则顺时针填数就行了,这里注意边界的问题,从左上到右上遍历完以后,行的起始行要+1,从右上到右下的遍历完以后,列的结束行要-1,从右下角到左下角遍历完以后,结束行要-1,从左下角到左上角遍历的时候,起始列要+1.

代码

class Solution {public: vector> generateMatrix(int n) { vector> res(n,vector(n,0)); int row=0; int col=0; int rows=n-1; int cols=n-1; int cnt=1; while(row<=rows&&col<=cols){ for(int i=col;i<=cols;i++){ res[row][i]=cnt; cnt++; } row++; for(int i=row;i<=rows;i++){ res[i][cols]=cnt; cnt++; } cols--; for(int i=cols;i>=col;i--){ res[rows][i]=cnt; cnt++; } rows--; for(int i=rows;i>=row;i--){ res[i][col]=cnt; cnt++; } col++; } return res; }};

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[leetcode] 659. Split Array into Consecutive Subsequences
下一篇:网红时代,“吃”不该被营销掩盖!(网红过度营销)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~