- 特点:边界变换问题
- 解题关键:抓住循环一致性原则,遇到边界每一次的开闭原则都是统一的。
54. 螺旋矩阵
59. 螺旋矩阵 II
class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
matrix=[[0]*n for _ in range(n)]
left,right,up,down=0,n-1,0,n-1
number=1
while left<=right and up<=down:
for x in range(left,right+1):
matrix[up][x]=number
number+=1
up+=1
for y in range(up,down+1):
matrix[y][right]=number
number+=1
right-=1
for x in range(right,left-1,-1):
matrix[down][x]=number
number+=1
down-=1
for y in range(down,up-1,-1):
matrix[y][left]=number
number+=1
left+=1
return matrix