給定乙個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回矩陣中的所有元素。
示例 1:
示例 2:輸入:[[ 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]
遍歷狀態分為四種:
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,...