题目:
给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。
示例:
输入:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
输出: [1,2,4,7,5,3,6,8,9]
解释:
说明:
- 给定矩阵中的元素总数不会超过 100000 。
解答:
恶心题。思路是根据索引和的奇偶判断。
考虑以下二维数组:
条件:索引和为奇数(蓝色)时,遇到column = 0向下,遇到row = 最大长度时向右,同时遇到向右(左下角),其余情况右下
索引和为偶数(红色)时,遇到row = 0向右,遇到column = 最大长度时向下,同时遇到向下(右上角),其余情况左上。
实现代码如下:
class Solution {
public int[] findDiagonalOrder(int[][] matrix