54 螺旋矩陣

2021-10-02 01:18:57 字數 2198 閱讀 4757

給定乙個包含 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...