LeetCode算法笔记54:螺旋矩阵

LeetCode算法笔记54:螺旋矩阵本文答案参考自 LeetCode 官方题解 题目描述给定一个包含 m x n 个元素的矩阵 m 行 n 列 请按照顺时针螺旋顺序 返回矩阵中的所有元素

大家好,欢迎来到IT知识分享网。

本文答案参考自LeetCode官方题解。


题目描述

给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。


注意与 “48题:旋转图像” 做区分,48题是整个一起旋转,而这道题是螺旋地访问元素


【方法1】官方名称:模拟

即按照题目的意思做题(就像中学里的“依题意”

  1. 从左上角开始,向右遍历,不能再遍历时就顺时针旋转。
  2. 其中,这个顺时针旋转的操作是有一定技巧的,因为遍历的方向是按 “右 -> 下 -> 左 -> 上 -> 右” 循环的,因此需要“记住”当前遍历的方向,当要旋转时再切换到下一个方向。
  3. 再者,判断能否再遍历 也需要“记住”遍历过了哪些地方,所以需要创建一个 bool类型的同样的矩阵来“记住”哪些地方是遍历过了的。

可以,很有精神!


【方法2】官方名称:按层模拟

我愿一层一层一层剥开你的心。

就像剥洋葱一样,将矩阵 从外到里 依次 分成1、2、3、。。。层,

  1. 从外到里 按照 方法1 的操作进行遍历
  2. 进入下一层,再进行步骤1直到最里层

其中,进入下一层的方法是

  1. 使用 top、left、right、bottom 来定位某一层的左上角和右上角
  2. 每进入下一层时执行 left++; top++; right–; bottom–; (即“收窄”左上角和右上角),直到left和right 重合

这个方法的优点是不用像方法1那样创建bool类型的矩阵,节省了空间。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/178300.html

(0)
上一篇 2025-05-10 09:00
下一篇 2025-05-10 09:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信