力扣每日一题59:螺旋矩阵

编程入门 行业动态 更新时间:2024-10-20 05:28:48

力扣每日一题59:螺旋<a href=https://www.elefans.com/category/jswz/34/1769510.html style=矩阵"/>

力扣每日一题59:螺旋矩阵

题目描述:

给你一个正整数 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

通过次数

361.6K

提交次数

503.1K

通过率

71.9%

给你一个正整数 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

通过次数

361.6K

提交次数

503.1K

通过率

71.9%

思路和题解:

与第54题一样的方法,也是从最外层到最里层的方法,第54题是矩阵生成序列,这个是序列生成矩阵。螺旋矩阵

代码:

class Solution {
public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> ans(n,vector<int>(n,0));int up=0,down=n-1,right=n-1,left=0;int num=1;while(true){for(int i=left;i<=right;i++){ans[up][i]=num;num++;}if(++up>down) break;for(int i=up;i<=down;i++){ans[i][right]=num;num++;}if(--right<left) break;for(int i=right;i>=left;i--){ans[down][i]=num;num++;}if(--down<up) break;for(int i=down;i>=up;i--){ans[i][left]=num;num++;}if(++left>right) break;}return ans;}
};

更多推荐

力扣每日一题59:螺旋矩阵

本文发布于:2023-12-05 00:19:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1662559.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:矩阵   螺旋

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!