classSolution:"""
59. 螺旋矩阵 II
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
"""defgenerateMatrix(self, n:int)-> List[List[int]]:# 思路:参考54题,54题是依次取出,59题是依次放入;关键依然是双层遍历# 1. 初始化及特殊处理if n ==1:return[[1]]# 关键点:初始化填充的第一个数
num =1# res = [[0] * n] * n
res =[[0]* n for i inrange(n)]
count =0# 记录已存数据在helper_list中的索引
l, r, t, d =0, n-1,0, n-1# 2. 双层遍历whileTrue:for i inrange(l, r +1):
res[t][i]= num
num = num +1
t = t +1if t > d:breakfor i inrange(t, d +1):
res[i][r]= num
num = num +1
r = r -1if r < l:breakfor i inrange(r, l -1,-1):
res[d][i]= num
num = num +1
d = d -1if d < t:breakfor i inrange(d, t-1,-1):
res[i][l]= num
num = num +1
l = l +1if l > r:break# 3. 返回结果值return res