邯郸手机建站价格,自己怎么开发游戏软件,酒店网站建设方案策划书,网站建设 模版leetcode59. 螺旋矩阵 II
题目 思路
螺旋数组#xff0c;一次螺旋4个方向#xff08;上行从左到右、右列从上到下、下行从右到左、左列从下到上#xff09;#xff0c;共执行(n//2)次螺旋。且对于n为奇数时#xff0c;额外填充中心点nums[mid][mid] n
每一次螺旋圈下来…leetcode59. 螺旋矩阵 II
题目 思路
螺旋数组一次螺旋4个方向上行从左到右、右列从上到下、下行从右到左、左列从下到上共执行(n//2)次螺旋。且对于n为奇数时额外填充中心点nums[mid][mid] n
每一次螺旋圈下来我们要画每四条边这四条边怎么画每画一条边都要坚持一致的左闭右开的原则这样这一圈才能按照统一的规则画下来。且每次螺旋后需向内偏移一个单位。 代码
class Solution:def generateMatrix(self, n: int) - List[List[int]]:nums [[0] * n for _ in range(n)]startx, starty 0, 0 # 起始点loop, mid n // 2, n // 2 # 迭代次数、n为奇数时矩阵的中心点count 1 # 计数for offset in range(1, loop 1) : # 每循环一层偏移量加1偏移量从1开始for i in range(starty, n - offset) : # 从左至右左闭右开nums[startx][i] countcount 1for i in range(startx, n - offset) : # 从上至下nums[i][n - offset] countcount 1for i in range(n - offset, starty, -1) : # 从右至左nums[n - offset][i] countcount 1for i in range(n - offset, startx, -1) : # 从下至上nums[i][starty] countcount 1 startx 1 # 更新起始点starty 1if n % 2 ! 0 : # n为奇数时填充中心点nums[mid][mid] count return nums