Diagonal Traverse (for E4 ;)
Problem statement
Given an m x n matrix mat, return all elements in diagonal order. Start at the top-left cell, traverse the first diagonal up-right, alternate direction on every following diagonal, and finish at the bottom-right cell.
Function
findDiagonalOrder(mat: int[][]) → int[]Examples
Example 1
mat = [[1,2,3],[4,5,6],[7,8,9]]return = [1,2,4,7,5,3,6,8,9]The diagonals are visited as [1], [2,4], [7,5,3], [6,8], and [9], with direction alternating each time.
Example 2
mat = [[1,2],[3,4]]return = [1,2,3,4]The diagonals are [1], [2,3], and [4], producing [1,2,3,4].
Constraints
m == mat.lengthn == mat[i].length1 <= m, n <= 10^41 <= m * n <= 10^4-10^5 <= mat[i][j] <= 10^5