-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsol.py
43 lines (33 loc) · 1.12 KB
/
sol.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class Solution:
def diagonalSort(self, mat: List[List[int]]) -> List[List[int]]:
for col in range(len(mat[0])):
diagonal = self.getDiagonal(0, col, mat)
diagonal.sort()
self.updateDiagonal(0, col, diagonal, mat)
for row in range(len(mat)):
diagonal = self.getDiagonal(row, 0, mat)
diagonal.sort()
self.updateDiagonal(row, 0, diagonal, mat)
return mat
def updateDiagonal(self, row, col, diagnol, mat: List[List[int]]) -> List[int]:
items = []
rows_len = len(mat)
cols_len = len(mat[0])
for item in diagnol:
mat[row][col] = item
row += 1
col += 1
def getDiagonal(self, row, col, mat: List[List[int]]) -> List[int]:
items = []
rows_len = len(mat)
cols_len = len(mat[0])
while True:
if row > rows_len - 1:
break
if col > cols_len - 1:
break
cur = mat[row][col]
items.append(cur)
row += 1
col += 1
return items