-
Notifications
You must be signed in to change notification settings - Fork 0
/
spiralMatrix.py
42 lines (32 loc) · 993 Bytes
/
spiralMatrix.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
from collections import deque, Counter
class Solution:
def spiralMatrix(self, inputVal: list[list]) -> list:
if not inputVal:
return []
output = []
row = len(inputVal)
col = len(inputVal[0])
t = 0
b = row - 1
l = 0
r = col - 1
while len(output) < row * col:
for x in range(l, r + 1):
output.append(inputVal[l][x])
t += 1
for x in range(t, b + 1):
output.append(inputVal[x][r])
r -= 1
if t <= b:
for x in range(r, l - 1, -1):
output.append(inputVal[b][x])
b -= 1
if l <= r:
for x in range(b, t - 1, -1):
output.append(inputVal[x][l])
l += 1
return output
if __name__ == "__main__":
obj = Solution()
ans = obj.spiralMatrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(ans)