问题描述
用了一个简单粗暴的指示器来表示方向,AC
pycharm代码:
class Solution:
def generateMatrix(self, n):
spiral_matrix = [[0 for i in range(n)] for j in range(n)]
i = 0
j = 0
dir = 0#right,down,left,up
circle_len = n
for num in range(1,n*n+1):
if spiral_matrix[i][j]==0:
spiral_matrix[i][j] = num
if dir == 0:
j+=1
if j==circle_len:
j-=1
i+=1
dir = 1
elif dir == 1:
i+=1
if i==circle_len:
i-=1
j-=1
dir = 2
elif dir == 2:
j-=1
if j == n-circle_len-1:
j+=1
i-=1
dir=3
else:
i-=1
if i==n-circle_len:
i+=1
j+=1
circle_len-=1
dir=0
return spiral_matrix
print(Solution().generateMatrix(4))
运行结果: