本題需要螺旋列印乙個二維陣列,即每列印一層旋轉一次。
所以本題需要用到旋轉矩陣這一操作。
**自
zip可以將輸入的兩個一維列表,逆時針轉置成乙個二維陣列 zip(a,b)
zip(*zipped) 可以將乙個二維陣列,逆時針轉置成二維陣列
所以在本題中需要使用到 順時針轉置還需要逆序:
class solution:
def spiralorder(self, matrix: list[list[int]]) -> list[int]:
res =
while matrix:
res += matrix.pop(0)
matrix = list(map(list,zip(*matrix)))[::-1]
return res
在加粗的一行中 外層的list用來將object轉化成list,內層的list用來將內層的tuple 轉化成list,從而可以pop
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,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 ...
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...