54题的姐妹题,非常顺手了
class Solution(object):
def generateMatrix(self, n):
state_dict={
"right":[0,+1,'down'],
"down":[+1,0,"left"],
"left":[0,-1,"up"],
"up":[-1,0,"right"]
}
matrix=[[False]*n for i in range(n)]
cur_int=1
state='right'
i=j=0
while cur_int <=n**2:
matrix[i][j]=cur_int
cur_int+=1
i+=state_dict[state][0]
j+=state_dict[state][1]
if i==n or j==n or matrix[i][j]:
i-=state_dict[state][0]
j-=state_dict[state][1]
state=state_dict[state][2]
i += state_dict[state][0]
j += state_dict[state][1]
return matrix