LeetCode:螺旋矩阵【54】

题目描述

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

示例 1:

输入:
[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]
]
输出: [1,2,3,6,9,8,7,4,5]

示例 2:

输入:
[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]
]
输出: [1,2,3,4,8,12,11,10,9,5,6,7]

题目分析

  这道题简直丧心病狂☺!我们采用的方式是一圈一圈打印

  答案将是从第一个外层按顺时针顺序排列的所有元素,然后是第二个外层的元素,依此类推

  我们首先定义四个元素,r1,r2,c1,c2,这将框定一个范围,我们顺时针打印这个范围边上的值,每次打印以后再次缩小框

  好的问题来了?

  1.要打印几个框?

    times=Math.min(长,宽)%2==0?Math.min(长,宽)/2:Math.min(长,宽)/2+1;

  2.顺时针打印的横纵坐标变化规律?如图所示有颜色是要打印的框

  

  3、吐槽一下这个题,简直恶心。

Java题解

class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> ans = new ArrayList<>();int m = matrix.length; //行if (m == 0)return ans;int n = matrix[0].length;//列int c1  =  0;int c2  = n-1;int r1  = 0;int r2 = m-1;int times = Math.min(m,n)%2==0?Math.min(m,n)/2:Math.min(m,n)/2+1;for(int i=0;i<times;i++){for (int c = c1; c <= c2; c++) ans.add(matrix[r1][c]);for (int r = r1 + 1; r <= r2; r++) ans.add(matrix[r][c2]);if (r1 < r2 && c1 < c2) {for (int c = c2 - 1; c > c1; c--) ans.add(matrix[r2][c]);for (int r = r2; r > r1; r--) ans.add(matrix[r][c1]);}r1++;r2--;c1++;c2--;}return ans;}
}

  

转载于:https://www.cnblogs.com/MrSaver/p/9812944.html

LeetCode:螺旋矩阵【54】相关推荐

  1. leetcode螺旋矩阵总结

    螺旋矩阵题目: leetcode54,59,885,2326 leetcode54 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4, ...

  2. LeetCode螺旋矩阵

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

  3. LeetCode 螺旋矩阵(Spiral Matrix)

    思路:做四个方向的遍历右,下,左,上.重复循环这四个方向即得到螺旋矩阵. 注意问题: 1.边界 2.判断当前位置是否已经遍历(mark标志位) 3.vector为空或者只有一个元素 4.循环退出条件 ...

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

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

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

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

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

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

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

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

  8. Java实现 LeetCode 54 螺旋矩阵

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

  9. 力扣(LeetCode)54. 螺旋矩阵(C++)

    思路分析 螺旋矩阵,又称蛇形矩阵,这是说,遍历它就像蛇一样一环一环的向内滑动. 遍历时变向,我们需要一个技巧.开方向数组, d x , d y dx,dy dx,dy,分别代表 x x x 的移动方向 ...

最新文章

  1. About DotNetNunk
  2. 【雷达对抗】频率测量与频谱分析-频率搜索与测频技术
  3. 校招启动 | 2021 神策未来星全面启航,只差 1 个你!
  4. Posterior decompression
  5. [react] 请说说什么是useState?为什么要使用useState?
  6. 普京昨天问马云:你这么年轻为什么“退休”?
  7. java中的single_解析java泛型(一)
  8. Angular官方教程采坑
  9. maven项目的创建
  10. org.postgresql.util.PSQLException: ERROR: column loginid of relation userinfo does not exist
  11. Planned Contrasts and Post hoc Tests 多重检验校正
  12. React 中 TypeScript 和装饰器及 Hooks
  13. 阿里云网站备案简单流程说明文档
  14. python实现植物大战僵尸_Python开发植物大战僵尸游戏
  15. access简述报表的功能_2016Access教程:第四章 报表.doc
  16. LINUX在中国的前景
  17. 有效市场假说和盲点套利
  18. Unity文件和目录操作
  19. Android 使用自带的MediaCodec 框架进行本地视频压缩
  20. python小程序之七段数码管的绘制

热门文章

  1. sql 生成一列1到10的数字_SQL 打印矩阵(三)
  2. vue 指令 v-cloak
  3. linux 程序/usr
  4. werkzeug routing.Rule
  5. javascript Node对象
  6. python 类属性方法实例属性方法
  7. 安全员b本计算机考试,2019年安全员B证考试题库试题资料一.doc
  8. php生成图片文件流,php 如何把图片转化为字节流存储到数据库?
  9. 2020中国云厂商预测:华为云、UCloud、青云、百度云、金山云等,谁是第三很重要?...
  10. 用批处理替换文件中的内容