《LeetCode筆記17》 螺旋矩陣

2021-10-02 07:09:59 字數 1374 閱讀 9474

給定乙個包含 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,10,9,5,6,7]

遍歷狀態分為四種:

1.頂層  2.尾列 3.底層 4.首列

將遍歷過得元素刪除避免重複遍歷,同時注意只剩一列時遍歷尾列和首列的特殊性。

class solution:

def spiralorder(self, matrix: list[list[int]]) -> list[int]:

s = 0

lists =

while(matrix):

if s == 0:

lists = lists+matrix[0]

del matrix[0]

s=1elif s == 1:

h = len(matrix)

w = len(matrix[0])

if(w!=1):

for i in range(h):

del matrix[i][-1]

else:

for i in range(h):

del matrix[0]

s = 2

elif s == 2:

lists = lists+matrix[-1][::-1]

del matrix[-1]

s=3

else:

h = len(matrix)

w = len(matrix[0])

if(w!=1):

for i in range(h-1, -1, -1):

del matrix[i][0]

else:

for i in range(h-1, -1, -1):

del matrix[i]

s = 0

return lists

leetcode刷題python之螺旋矩陣II

思路 按照題目要求依次迴圈遍歷,需要安排好順序,設定好四個座標參考,left,right,top,bottom,用於移動的參考,每次移動後進行相應的更新,在乙個while下分別放著4個for迴圈,分別表示在四個方向上的移動 class solution def generatematrix self...

解題思路 leetcode第五十九題 螺旋矩陣

給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 解題思路 本題採用迴圈賦值的方法,其關鍵之處如何對提前建立的列表進行螺旋遍歷並賦值,本題通過設定兩個標誌位實現遍歷的過程中轉向,程式設定a,b,...

解題思路 leetcode第五十四題 螺旋矩陣

題目描述 給定乙個包含 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,...