Diagonal Traverse
https://leetcode.com/explore/learn/card/array-and-string/202/introduction-to-2d-array/1167/
j/i 0 1 2
0 1 2 3
1 4 5 6
2 7 8 9from collections import defaultdict
class Solution:
def findDiagonalOrder(self, matrix: List[List[int]]) -> List[int]:
d = defaultdict(list)
res = []
m = len(matrix)
if m == 0:
return res
n = len(matrix[0])
for i in range(m):
for j in range(n):
currSum = i+j
if currSum % 2 == 1:
d[currSum].append(matrix[i][j])
else:
d[currSum].insert(0,matrix[i][j])
for l in d:
res += d[l]
return resLast updated