问题链接
498. 对角线遍历
问题描述
给你一个大小为 m x n
的矩阵mat
,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。
示例
解题思路
还能有啥思路,直接模拟暴力破解;
注意一下遍历的方向,小心数组下标越界即可。
又是在LeetCode签到划水的一天~
代码示例(JAVA)
class Solution {
public int[] findDiagonalOrder(int[][] mat) {
int m = mat.length;
int n = mat[0].length;
int[] result = new int[m * n];
int count = 0;
for (int i = 0; i < m + n - 1; i++) {
for (int j = i; j >= 0; j--) {
// i%2控制遍历方向
// 注意下标越界
if (i % 2 != 0 && j <= n - 1 && i - j <= m - 1) {
result[count++] = mat[i - j][j];
} else if (i % 2 == 0 && j <= m - 1 && i - j <= n - 1) {
result[count++] = mat[j][i - j];
}
}
}
return result;
}
}