思路:循环打印即可,终止条件是存储数组的长度等于原始数组中元素的个数
Python:
class Solution:
def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
res=[]
if not matrix:
return res
x1,y1,x2,y2=0,0,len(matrix),len(matrix[0])
count=x2*y2
while len(res)<count:
if len(res)<count:
for i in range(y1,y2):
res.append(matrix[x1][i])
x1+=1
if len(res)<count:
for i in range(x1,x2):
res.append(matrix[i][y2-1])
y2-=1
if len(res)<count:
for i in range(y2-1,y1-1,-1):
res.append(matrix[x2-1][i])
x2-=1
if len(res)<count:
for i in range(x2-1,x1-1,-1):
res.append(matrix[i][y1])
y1+=1
return res