classSolution(object):defspiralOrder(self, matrix):"""
:type matrix: List[List[int]]
:rtype: List[int]
"""
res=[]defcircle(mat1):if mat1==[]:return
m =len(mat1)
n =len(mat1[0])for j inrange(n):
res.append(mat1[0][j])for i inrange(1,m-1):
res.append(mat1[i][n-1])for j inrange(n-1,-1,-1):if m==1:break
res.append(mat1[m-1][j])for i inrange(m-2,0,-1):if n==1:break
res.append(mat1[i][0])if m<3or n <3:
m1=[]else:
m1=[[mat1[i][j]for j inrange(1,n-1)]for i inrange(1,m-1)]
circle(m1)return
circle(matrix)return res
Spiral Matrix II
classSolution(object):defgenerateMatrix(self, n):"""
:type n: int
:rtype: List[List[int]]
"""
res=[[0]*n for i inrange(n)]defgenerate(start,end,first):if end <= start:returnfor j inrange(start,end):
res[start][j]=first
first+=1for i inrange(start+1,end-1):
res[i][end-1]=first
first+=1for j inrange(end-1,start-1,-1):if res[end-1][j]==0:
res[end-1][j]=first
first+=1for i inrange(end-2,start,-1):
res[i][start]=first
first+=1
generate(start+1,end-1,first)return
generate(0,n,1)return res