class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
'''
思路:
参考前面螺旋矩阵, 将前面的取数操作变为赋值操作即可;注意初始化结果数组涉及深浅复制问题,用for来初始化
'''
res = [[0 for _ in range(n)] for _ in range(n)]
up, left, num = 0, 0, 1
down, right = n-1, n-1
while True:
for i in range(left, right+1):
res[up][i] = num
num += 1
up += 1
if up > down:
break
for i in range(up, down+1):
res[i][right] = num
num += 1
right -= 1
if right < left:
break
for i in range(left, right+1)[::-1]:
res[down][i] = num
num += 1
down -= 1
if down < up:
break
for i in range(up, down+1)[::-1]:
res[i][left] = num
num += 1
left += 1
if left > right:
break
return res
螺旋矩阵(中等题)
最新推荐文章于 2024-08-10 22:52:22 发布