| 12345678910111213141516171819202122232425 | 
							- func findDiagonalOrder(matrix [][]int) (ans []int) {
 
- 	m := len(matrix)
 
- 	if m == 0 {
 
- 		return
 
- 	}
 
- 	n := len(matrix[0])
 
- 	if n == 0 {
 
- 		return
 
- 	}
 
- 	x, y := 0, 0
 
- 	dx, dy := 1, -1
 
- 	for i := 0; i < m*n; i++ {
 
- 		ans = append(ans, matrix[y][x])
 
- 		if ny := y + dy; (ny == -1 || ny == m) && x != n-1 {
 
- 			dx, dy = -dx, -dy
 
- 			x++
 
- 		} else if nx := x + dx; nx == -1 || nx == n {
 
- 			dx, dy = -dx, -dy
 
- 			y++
 
- 		} else {
 
- 			x, y = nx, ny
 
- 		}
 
- 	}
 
- 	return
 
- }
 
 
  |