Skip to content

Commit 7566b8f

Browse files
Add files via upload
1 parent fb7f173 commit 7566b8f

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed

Spiral Matrix II/Spiral_Matrix_II.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# 36ms 99.37%
2+
class Solution:
3+
def generateMatrix(self, n):
4+
"""
5+
:type n: int
6+
:rtype: List[List[int]]
7+
"""
8+
res_list = [[None for i in range(n)] for j in range(n)]
9+
num = 1
10+
11+
i_max, i_min, j_max, j_min = n - 1, 0, n - 1, 0
12+
while True:
13+
# 列从左向右
14+
for j in range(j_min, j_max + 1, 1):
15+
res_list[i_min][j] = num
16+
num += 1
17+
i_min += 1
18+
if num == n ** 2 + 1:
19+
break
20+
# 行从上到下
21+
for i in range(i_min, i_max + 1, 1):
22+
res_list[i][j_max] = num
23+
num += 1
24+
j_max -= 1
25+
# 列从右到左
26+
for j in range(j_max, j_min - 1, -1):
27+
res_list[i_max][j] = num
28+
num += 1
29+
i_max -= 1
30+
if num == n ** 2 + 1:
31+
break
32+
# 行从下到上
33+
for i in range(i_max, i_min - 1, -1):
34+
res_list[i][j_min] = num
35+
num += 1
36+
j_min += 1
37+
return res_list

Spiral Matrix/Spiral_Matrix.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# 32ms 100%
2+
class Solution:
3+
def spiralOrder(self, matrix):
4+
"""
5+
:type matrix: List[List[int]]
6+
:rtype: List[int]
7+
"""
8+
if not matrix:
9+
return []
10+
m, n = len(matrix), len(matrix[0])
11+
i_max, i_min, j_max, j_min = m - 1, 0, n - 1, 0
12+
res_list = []
13+
while True:
14+
# 列从左向右
15+
res_list += matrix[i_min][j_min:j_max + 1]
16+
i_min += 1
17+
if len(res_list) == (m * n):
18+
break
19+
# 行从上到下
20+
res_list += [matrix[i][j_max] for i in range(i_min, i_max + 1, 1)]
21+
j_max -= 1
22+
if len(res_list) == (m * n):
23+
break
24+
# 列从右到左
25+
res_list += matrix[i_max][j_min:j_max + 1][::-1]
26+
i_max -= 1
27+
if len(res_list) == (m * n):
28+
break
29+
# 行从下到上
30+
res_list += [matrix[i][j_min] for i in range(i_max, i_min - 1, -1)]
31+
j_min += 1
32+
return res_list

0 commit comments

Comments
 (0)