[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]

解释:


image.png

说明:

给定矩阵中的元素总数不会超过 100000 。

解法:

func findDiagonalOrder(matrix [][]int) []int {
    if len(matrix)==0{
        return []int{}
    }
    r:=0//row
    c:=0//column
    d:=1//  1为向右上遍历,-1为向左下遍历。也可以用r+c的奇偶来判断方向
    ret :=[]int{}
    maxR:=len(matrix)-1
    maxC:=len(matrix[0])-1
    for l:=0;l

这道题有两个难点:

  1. 边界的判断:向右上时,可能会遇到两个边界,右和上。左下同理。
  2. 方向的切换

你可能感兴趣的:([Leetcode][数组][遍历] 498. 对角线遍历)