题目:
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
来源:https://leetcode-cn.com/problems/spiral-matrix-ii
打卡:
class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
mat=[[0 for i in range(n)] for i in range(n)]
i,j,di,dj=0,0,0,1
for k in range(1,n**2+1):
mat[i][j]=k
if i+di>=n or j+dj>=n:
di,dj=dj,-di
elif mat[i+di][j+dj]>0:
di,dj=dj,-di
i+=di
j+=dj
return mat