498. 对角线遍历
498. 对角线遍历
给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。
示例:
输入:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
输出: [1,2,4,7,5,3,6,8,9]
解释:
说明:
给定矩阵中的元素总数不会超过 100000 。
解题思路
对于如下矩阵,我们以矩阵上边界和右边界的点作为起点开始遍历,我们统一以左下方为方向进行遍历
[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]
]
但是题目中显然是存在左下方遍历和右上方遍历交替进行的,但是问题在于他们的起点难以确定,所以我们统一以左下方为基准,后面再对元素进行翻转
代码
class Solution {public int[] findDiagonalOrder(int[][] mat) {int n=mat.length,m=mat[0].length;int[] res = new int[n * m];int p=0;boolean pos=false;for (int i=0;i<m;i++){int x=0,y=i,l=p;while (x>=0&&x<n&&y>=0&&y<m){ res[p++]=mat[x][y];x++;y--;} int r=p-1;if(!pos){while (l<r){int t=res[l];res[l]=res[r];res[r]=t;l++;r--;}}pos=!pos;}for (int i=1;i<n;i++){int x=i,y=m-1,l=p;while (x>=0&&x<n&&y>=0&&y<m){res[p++]=mat[x][y];x++;y--;}int r=p-1;if(!pos){while (l<r){int t=res[l];res[l]=res[r];res[r]=t;l++;r--;}}pos=!pos;}return res;}
}
498. 对角线遍历相关推荐
- 力扣498. 对角线遍历
给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素. 代码思路:以第一行和右边最后一列作为每轮的开始元素,先用temp存储,全部按 从左上到右下 的 ...
- 【498. 对角线遍历】
来源:力扣(LeetCode) 描述: 给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素. 示例 1: 输入:mat = [[1,2,3],[4, ...
- 498 对角线遍历(找规律)
1. 问题描述: 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 示例: 输入: [ [ 1, 2, 3 ], [ ...
- 【中等】【数组】498 - 对角线遍历(diagonal-traverse)
一 目录 不折腾的前端,和咸鱼有什么区别 目录 一 目录 二 题目 三 解题思路 四 统计分析 五 解题套路 二 题目 给定一个含有 M x N 个元素的矩阵(M 行,N 列), 请以对角线遍历的顺序 ...
- LeetCode 对角线遍历(找规律)
一.LeetCode 498 对角线遍历 题目描述: 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 思路: 参考题解 ...
- 3.对角线遍历(LeetCode第498题)
一.题目描述 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ...
- java对角线遍历_Leetcode 498:对角线遍历Diagonal Traverse(python3、java)
对角线遍历 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. Given a matrix of M x N elemen ...
- LeetCode(498):对角线遍历 Diagonal Traverse(Java)
2019.11.7 #程序员笔试必备# LeetCode 从零单刷个人笔记整理(持续更新) github:https://github.com/ChopinXBP/LeetCode-Babel 逻辑推 ...
- [Swift]LeetCode498. 对角线遍历 | Diagonal Traverse
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
最新文章
- oracle索引大小暴增_oracle 如何预估将要创建的索引的大小
- 汇编:call指令的应用
- Android 自定义阴影,自定义颜色样式
- docker安装mysql_Docker 安装 MySQL
- 腾讯云服务器性能测试心得经验总结
- Spring MVC 基础笔记
- python自动获取邮件数据_Python 获取测试报告内容并发送邮件
- 21个Docker 命令
- sql 教程_SQL
- Atitit usrqbg1834 html的逻辑化流程化 规范标准化解决方案
- BoundsChecker教程
- 除了孙宇晨 币圈还有这些人入不得、出不去
- Spring Boot基础学习笔记08
- 语音信号特征处理--Fbank\MFCC
- 下肢静脉曲张的病因具体有哪些?
- elment文件上传 展示点击下载
- vu2响应式原理 代码分析
- 字典树基础知识学习笔记
- NOI OJ 1.5 18:鸡尾酒疗法 C语言(包含一维数组的简单讲解)
- Codeforces1442 D. Sum(dp+分治优化)