54. 螺旋矩阵

解题思路:
这里的方法不需要记录已经走过的路径,所以执行用时和内存消耗都相对较小

首先设定上下左右边界
其次向右移动到最右,此时第一行因为已经使用过了,可以将其从图中删去,体现在代码中就是重新定义上边界
判断若重新定义后,上下边界交错,表明螺旋矩阵遍历结束,跳出循环,返回答案
若上下边界不交错,则遍历还未结束,接着向下向左向上移动,操作过程与第一,二步同理
不断循环以上步骤,直到某两条边界交错,跳出循环,返回答案

class Solution {public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> res;int u = 0;                 //定义上边界int d = matrix.size()-1;   //定义下边界int l = 0;                 //定义左边界int r = matrix[0].size()-1;//定义右边界while(true){for(int i=l;i<=r;i++) res.push_back(matrix[u][i]);  //向右if(++u>d) break;      //重新定义上边界,第一行走完了for(int i=u;i<=d;i++) res.push_back(matrix[i][r]);  //向下移动if(--r<l) break;//重新定义右边边界for(int i=r;i>=l;i--) res.push_back(matrix[d][i]);  //向左移动if(--d<u) break;//重新定义下边界for(int i=d;i>=u;i--) res.push_back(matrix[i][l]);  //向上移动if(++l>r) break;//重新定义左边界}return res;}
};

LeetCode-数组-54. 螺旋矩阵相关推荐

  1. leetcode 题解 54.螺旋矩阵(Typescript)

    /* * @lc app=leetcode.cn id=54 lang=typescript * * [54] 螺旋矩阵 */ //同69题中左闭右闭的处理方法 //力扣大神讲解点此 // @lc c ...

  2. leetcode系列-54. 螺旋矩阵

    题目描述:给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素. 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出 ...

  3. LeetCode 54.螺旋矩阵 - 原地修改

    [LetMeFly]54.螺旋矩阵 - 原地修改 力扣题目链接:https://leetcode.cn/problems/spiral-matrix/ 给你一个 m行 n列的矩阵 matrix,请按照 ...

  4. LeetCode 59. 螺旋矩阵 II LeetCode 54. 螺旋矩阵

    文章目录 1. 题目信息 2. LeetCode 59 解题 3. LeetCode 54. 螺旋矩阵 4.<剑指Offer>面试题29 1. 题目信息 给定一个正整数 n,生成一个包含 ...

  5. Java实现 LeetCode 54 螺旋矩阵

    54. 螺旋矩阵 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素. 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], ...

  6. LeetCode实战:螺旋矩阵 II

    题目英文 Given a positive integer n, generate a square matrix filled with elements from 1 to n^2 in spir ...

  7. 模拟法螺旋遍历矩阵:54.螺旋矩阵(Kotlin)

    54. 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素. 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9] ...

  8. c++数据结构与算法(6)——数组(螺旋矩阵)

    原来很怕的一种题型,但是面试的时候又经常碰到,今天算是硬啃下来了 典型题目 54. 螺旋矩阵 59. 螺旋矩阵 II 885. 螺旋矩阵 III ------------ 54. 螺旋矩阵 按照遍历方 ...

  9. LeetCode打卡 52八皇后Ⅱ53最大子序和54螺旋矩阵

    原创公众号:bigsai 希望和优秀的你做朋友,感觉不错还请一键三连. 回复进群即可加入和200+人一起打卡.上周打卡: LeetCode 47全排列Ⅱ&48旋转图像 LeetCode 49字 ...

最新文章

  1. 懂语言者得天下:NLP凭什么被称为人工智能的掌上明珠?
  2. 提示-bash: telnet: command not found的解决方法
  3. godaddy域名转发(域名跳转)设置教程
  4. [android] 网络html查看器
  5. IIC总线上挂载多个从机的程序实现
  6. 程序日志--要养成好习惯
  7. SVN的VS.NET插件——AnkhSVN
  8. 日常英语:最近的药店在哪里
  9. power automate desktop获取股票网页数据
  10. 对于长沙互联网发展,一个外来两年Java程序员的所见所感所愿
  11. 拼多多淘宝虚拟店虚拟商品如何通过网盘发货机器人软件工具进行自动发货,怎么设置口令关键词?百度网盘自动发货机器人
  12. 文件后缀和相应的文件类型,打开方法参考大全
  13. 计算机病毒蓝屏,电脑中病毒造成蓝屏怎么解决
  14. 【MySQL数据库】 - 复杂查询(二)
  15. RMM Level -- 对于REST的层级划分模型
  16. Win11图片打开为Windows照片查看器
  17. Others10_玩转信用卡之信用卡黑话
  18. 西邮校园网路由器教程
  19. rstudio中johansen协整检验代码
  20. ubuntu18.04安装SecureCRT

热门文章

  1. linux怎么查看一个文件夹的大小
  2. SpringBoot连接Mysql数据库遇到Unable to load authentication plugin ‘caching_sha2_password解决方案
  3. php 模板使用,TMDPHP 模板引擎使用教程
  4. kafka 同步提交 异步_腾讯游戏工程师分享:简单理解 Kafka 的消息可靠性策略
  5. matlab 蜂窝网格,blender怎么制作蜂巢网格 蜂窝式网格画法
  6. python函数式编程读取数据时出现错误_写 Python 代码不可不知的函数式编程技术...
  7. 遥感在计算机领域的应用,遥感技术在测绘工作中的应用分析
  8. java 协程框架_GitHub - yaozhang0105/dactor: Dactor是基于Java的轻量级同步异步统一处理框架,基于协程思想构建...
  9. Qt中应用程序的打包与发布
  10. 控件事件的绑定与取消