給定乙個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回矩陣中的所有元素。
輸入:[[
1,2,
3],[
4,5,
6],[
7,8,
9]]輸出:[1
,2,3
,6,9
,8,7
,4,5
]
輸入:[[
1,2,
3,4]
,[5,
6,7,
8],[
9,10,
11,12]
]輸出:[1
,2,3
,4,8
,12,11
,10,9
,5,6
,7]
這題真沒啥好白扯的。就是模擬旋轉就行。注意邊界條件的控制。
ac**1,手工模擬:
class
solution
:def
spiralorder
(self, matrix)
: res =
ifnot
len(matrix)
:return res
left = top =
0 right =
len(matrix[0]
) botton =
len(matrix)
flag =
1while
len(res)
<
len(matrix)
*len
(matrix[0]
):if flag ==1:
for i in
range
(left,right)
:[i]
) flag =
2 top +=
1elif flag ==2:
for i in
range
(top,botton)
:[right-1]
) flag =
3 right -=
1elif flag ==3:
for i in
range
(right-
1,left-1,
-1):
1][i])
flag =
4 botton -=
1elif flag ==4:
for i in
range
(botton-
1,top-1,
-1):
[left]
) flag =
1 left +=
1return res
s = solution(
)print
(s.spiralorder([[
1,2,
3,4]
,[5,
6,7,
8],[
9,10,
11,12]
]))
ac**2:python內建函式
class
solution
:def
spiralorder
(self, matrix)
: res =
while matrix:
res += matrix.pop(0)
matrix =
list
(map
(list
,zip
(*matrix)))
[::-
1]# *matrix對序列進行解包
print
(matrix)
return res
s = solution(
)print
(s.spiralorder([[
1,2,
3,4]
,[5,
6,7,
8],[
9,10,
11,12]
]))
54 螺旋矩陣
給定乙個包含 m x n 個元素的矩陣 m 行,n 列 請按照順時針螺旋順序,返回矩陣中的所有元素。示例 1 輸入 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 輸入 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11...
54 螺旋矩陣
題目描述 給定乙個包含 m x n 個元素的矩陣 m 行,n 列 請按照順時針螺旋順序,返回矩陣中的所有元素。示例 1 輸入 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例2 輸入 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,1...
54 螺旋矩陣
給你乙個 m 行 n 列的矩陣 matrix 請按照 順時針螺旋順序 返回矩陣中的所有元素。示例一 輸入 matrix 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例二 輸入 matrix 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4...