Java实现 LeetCode 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 。
PS:
对角线的特点就是x+y相等
class Solution {
public int[] findDiagonalOrder(int[][] matrix) {
if (matrix == null || matrix.length == 0) {
return new int[]{};
}
int r = 0, c = 0;
int row = matrix.length, col = matrix[0].length;
int[] res = new int[row * col];
for (int i = 0; i < res.length; i++) {
res[i] = matrix[r][c];
// r + c 即为遍历的层数,偶数向上遍历,奇数向下遍历
if ((r + c) % 2 == 0) {
if (c == col - 1) {
// 往右移动一格准备向下遍历
r++;
} else if (r == 0) {
// 往下移动一格准备向下遍历
c++;
} else {
// 往上移动
r--;
c++;
}
} else {
if (r == row - 1) {
// 往右移动一格准备向上遍历
c++;
} else if (c == 0) {
// 往上移动一格准备向上遍历
r++;
} else {
// 往下移动
r++;
c--;
}
}
}
return res;
}
}
Java实现 LeetCode 498 对角线遍历的更多相关文章
- Leetcode 498.对角线遍历
对角线遍历 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 示例: 输入: [ [ 1, 2, 3 ], [ 4, 5, ...
- python(leetcode)498. 对角线遍历
这题难度中等,记录下思路 第一个会超时, 第二个:思想是按斜对角线行进行右下左上交替遍历, def traverse(matrix): n=len(matrix)-1 m=len(matrix[0]) ...
- LeetCode:对角线遍历【498】
LeetCode:对角线遍历[498] 题目描述 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 示例: 输入: [ [ ...
- 498. (leetcode)对角线遍历
498. 对角线遍历 根据题目的图像看,主要有两种走法,第一种是向右上(顺时针方向),第二种是向左下(逆时针)走 我们设 x ,y初始为0,分别对应横纵坐标 现在分析右上(0,2) 为例:(注意右上的 ...
- Leetcode 498:对角线遍历Diagonal Traverse(python3、java)
对角线遍历 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. Given a matrix of M x N elemen ...
- [LeetCode] Diagonal Traverse 对角线遍历
Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal ...
- Java for LeetCode 212 Word Search II
Given a 2D board and a list of words from the dictionary, find all words in the board. Each word mus ...
- Java for LeetCode 044 Wildcard Matching
Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. ...
- [Swift]LeetCode498. 对角线遍历 | Diagonal Traverse
Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal ...
随机推荐
- 自定义IDOC
目录 1需求场景 4 2配置发送端IDOC 4 2.1定义段(WE31) 4 2.2定义基本类型(WE30) 4 2.3定义消息类型(WE81) 5 2.4定义传输结构 ...
- IDOC日志查询报表
当不知道IDOC同步的具体时间,而WE02数据量过大时: 当某条IDOC记录中数据量过大,找不到具体某条数据时: 可采用自开发程序查找,具体代码如下: REPORT ZIDOC_LOG. *----- ...
- C语言进阶_分支语句
勇气是在压力之下展现出的优雅. 一.简介 C语言提供了两种分支语句可供选用,一是if.......else....类型,一种是Switch语句.两种语句都能根据条件判断结果执行不同的指令,且能进行替换 ...
- ZOOM火速收购加密公司Kaybase 能否补齐安全短板?
近日,一直因为安全漏洞饱受批评的云视频会议协作工具ZOOM,,其公司全资收购一家初创企业Kaybase,以加强ZOOM系统的隐私保护和安全性. Kaybase公司官网 2020年年初,随着疫情的蔓 ...
- 【clear linux】intel clear linux 电源状态命令
# 重启系统 $ sudo systemctl reboot # 关闭系统,切断电源 $ sudo systemctl poweroff # CPU停止工作 $ sudo systemctl halt ...
- js判断数组(数组对象)中是否存在指定的值,如果存在就删除
数组中是否存在指定值,存在就删除 var str = ["a", "b", "c"]; var index = str.indexOf(&q ...
- apache httpd 不记录head 的请求。
比如说用了阿里云的slb ,然后他会检测服务器是否正常运行,通常会发大量的HEAD 请求过来. 这样有规则的请求是可以屏蔽的.步骤如下: 在 <Directory />中添加 SetEnv ...
- Unity3D的UGUI布局锚点自动绑定关系
[MenuItem("CONTEXT/RectTransform/Auto")] public static void AutoRectAnior() { Debug.Log(&q ...
- 高效、可维护、组件化的CSS
如何写出更加高效的CSS? 主要有以下四个关键点: 高效的CSS 可维护的CSS 组件化的CSS hack-free CSS 1.书写高效的CSS代码 * 使用 外联样式 替代行间 样式或者内嵌样式. ...
- Spring JSR-250 注释
Spring还使用基于 JSR-250 注释,它包括 @PostConstruct 注释 @PreDestroy 注释 @Resource 注释 @PostConstruct 和 @PreDestro ...