class Solution(object):
def drawCircle(self, matrix, lefttop, size):
print lefttop, size
ret=[]
for i in xrange(size[0]):
ret.append(matrix[lefttop[1]][lefttop[0]+i])
for i in xrange(1, size[1]-1):
ret.append(matrix[lefttop[1]+i][lefttop[0]+size[0]-1])
if size[1]>1:
for i in xrange(size[0]):
ret.append(matrix[lefttop[1]+size[1]-1][size[0]+lefttop[0]-i-1])
if size[0]>1:
for i in xrange(1, size[1]-1):
ret.append(matrix[size[1]+lefttop[1]-i-1][lefttop[0]])
return ret
def spiralOrder(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: List[int]
"""
if len(matrix)==0:
return []
size=len(matrix[0]), len(matrix)
lefttop=0,0
loop = min(size[0],size[1])
ret=[]
for i in xrange(0, loop, 2):
ret.extend(self.drawCircle(matrix, lefttop, size))
lefttop=lefttop[0]+1, lefttop[1]+1
size=size[0]-2,size[1]-2
return ret