feat(54-spiral-matrix): add py3 solution
This commit is contained in:
41
0054_spiral-matrix/python3/solution.py
Normal file
41
0054_spiral-matrix/python3/solution.py
Normal file
@@ -0,0 +1,41 @@
|
||||
class Solution:
|
||||
def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
|
||||
row_begin_loc, row_end_loc = 0, len(matrix) - 1
|
||||
col_begin_loc, col_end_loc = 0, len(matrix[0]) - 1
|
||||
result = []
|
||||
|
||||
while row_begin_loc <= row_end_loc and col_begin_loc <= col_end_loc:
|
||||
# Top Side
|
||||
i, j = row_begin_loc, col_begin_loc
|
||||
while j <= col_end_loc:
|
||||
result.append(matrix[i][j])
|
||||
j += 1
|
||||
|
||||
# Right Side
|
||||
i += 1
|
||||
j -= 1
|
||||
while i <= row_end_loc:
|
||||
result.append(matrix[i][j])
|
||||
i += 1
|
||||
|
||||
# Bottom Side
|
||||
i -= 1
|
||||
j -= 1
|
||||
while j >= col_begin_loc and i > row_begin_loc:
|
||||
result.append(matrix[i][j])
|
||||
j -= 1
|
||||
|
||||
# Left Side
|
||||
i -= 1
|
||||
j += 1
|
||||
while i > row_begin_loc and j < col_end_loc:
|
||||
result.append(matrix[i][j])
|
||||
i -= 1
|
||||
|
||||
row_begin_loc += 1
|
||||
row_end_loc -= 1
|
||||
col_begin_loc += 1
|
||||
col_end_loc -= 1
|
||||
|
||||
return result
|
||||
|
||||
Reference in New Issue
Block a user