leetcode59. 螺旋矩阵 II

leetcode59. 螺旋矩阵 II

题目

思路

螺旋数组,一次螺旋4个方向(上行从左到右、右列从上到下、下行从右到左、左列从下到上),共执行(n//2)次螺旋。且对于n为奇数时,额外填充中心点nums[mid][mid] = n

每一次螺旋圈下来,我们要画每四条边,这四条边怎么画,每画一条边都要坚持一致的左闭右开的原则,这样这一圈才能按照统一的规则画下来。且每次螺旋后,需向内偏移一个单位。

代码

python 复制代码
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] = count
                count += 1
            for i in range(startx, n - offset) :    # 从上至下
                nums[i][n - offset] = count
                count += 1
            for i in range(n - offset, starty, -1) : # 从右至左
                nums[n - offset][i] = count
                count += 1
            for i in range(n - offset, startx, -1) : # 从下至上
                nums[i][starty] = count
                count += 1                
            startx += 1         # 更新起始点
            starty += 1

        if n % 2 != 0 :			# n为奇数时,填充中心点
            nums[mid][mid] = count 
        return nums
相关推荐
赛博云推-Twitter热门霸屏工具4 小时前
从手动运营到自动化矩阵:Twitter热门霸屏的技术化实现逻辑
矩阵·自动化·twitter
weixin_553132075 小时前
探索Vortex开源GPGPU:RISC-V SIMT架构(4-2),TCU 矩阵计算(1)
矩阵·架构·github·risc-v·wmma·simt·tcu
AI科技星5 小时前
张祥前统一场论 22 个核心公式及常数
服务器·人工智能·线性代数·算法·矩阵·概率论
维度攻城狮6 小时前
Python控制系统仿真案例-RLC电路系统
python·线性代数·矩阵
㓗冽6 小时前
矩阵问题(二维数组)-基础题70th + 发牌(二维数组)-基础题71th + 数字金字塔(二维数组)-基础题72th
c++·算法·矩阵
橙-极纪元6 小时前
AI代码生产部署安全标准作业程序(SOP)的附件1:风险评估矩阵
人工智能·安全·矩阵
西***63478 小时前
深耕政务数字化,矩阵会议系统多点落地,解锁政务会商新范式
矩阵·音视频·会议系统
Evand J19 小时前
【定位方法】到达时间(TOA)用于三边定位,建模、解算步骤、公式推导
线性代数·toa·定位方法·三边定位
历程里程碑21 小时前
矩阵----=矩阵置零
大数据·线性代数·算法·elasticsearch·搜索引擎·矩阵·散列表
程序员酥皮蛋1 天前
hot 100 第二十一题 21.搜索二维矩阵||
线性代数·算法·leetcode·矩阵