FastPrepDiagonal Traverse (for E4 ;)

Diagonal Traverse (for E4 ;)

Meta logoMeta● MediumFULLTIMEPHONE SCREEN
Learn

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.length
  • n == mat[i].length
  • 1 <= m, n <= 10^4
  • 1 <= m * n <= 10^4
  • -10^5 <= mat[i][j] <= 10^5

More Meta problems

See Meta hiring insights
public int[] findDiagonalOrder(int[][] mat) {
  // write your code here
}
mat[[1,2,3],[4,5,6],[7,8,9]]
expected[1,2,4,7,5,3,6,8,9]
Checking account…