题目描述:螺旋填充矩阵nxn 用1-n**2的数来填充。
题目链接:Leetcode 59. Spiral Matrix II
思路:参照之前打印的思路,此时用dx,dy 的交替变换表示方向,1-n来填充,利用是否为0来判断是否需要转换方向。
代码如下
class Solution:
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
ans = [[0 for _ in range(n)] for _ in range(n)]
x,y,dx,dy = 0,0,0,1
for idx in range(n*n):
ans[x][y] = idx + 1
if ans[(x+dx)%n][(y+dy)%n] != 0:
dx,dy = dy,-dx
x += dx
y += dy
return ans