一、题设
给你一个正整数 n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。
二、基本思路
没啥好说的,跟I那题一毛一样...
LeetCode刷题(python版)——Topic54螺旋矩阵
三、代码实现
def generateMatrix(self, n):
up , down = n-1 , 0
maxtrix = [[0 for _ in range(n)] for _ in range(n)]
left , right = 0 , n-1
res = 1
while True:
for i in range(left,right+1):
maxtrix[down][i] = res
res += 1
down += 1
if down > up :
break
for i in range(down,up+1):
maxtrix[i][right] = res
res += 1
right -= 1
if right < left:
break
for i in range(right,left-1,-1):
maxtrix[up][i] = res
res += 1
up -= 1
if up < down:
break
for i in range(up,down-1,-1):
maxtrix[i][left] = res
res += 1
left += 1
if left > right:
break
return maxtrix
四、效率总结