leetcode59. 螺旋矩阵 II

leetcode59. 螺旋矩阵 II

题目

思路

螺旋数组,一次螺旋4个方向(上行从左到右、右列从上到下、下行从右到左、左列从下到上),共执行(n//2)次螺旋。且对于n为奇数时,额外填充中心点numsmidmid = 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
相关推荐
杨石兴11 小时前
柱坐标下的拉普拉斯变换
线性代数·电磁学
bj_zhb15 小时前
矩阵的白化变换/球化变换
线性代数·矩阵
酉鬼女又兒2 天前
[特殊字符]零基础入门AI:归纳演绎、假设空间、归纳偏好、NFL、过拟合与欠拟合、模型评估选择、超参数、性能度量、混淆矩阵、P-R曲线和F1
人工智能·windows·python·深度学习·安全·机器学习·矩阵
2601_955759622 天前
如何用 Claude Opus 5 API 写出结构清晰的 SEO 文章
线性代数·矩阵
2601_955759622 天前
Claude Opus 5 SEO 实战:打造高质量长尾关键词内容矩阵
线性代数·矩阵
科技大视界3 天前
TikTok广告素材投放工具:从官方后台到AIGC一体化矩阵构建高效投放矩阵
人工智能·矩阵·aigc
闪电悠米3 天前
力扣hot100-54.螺旋矩阵-模拟边界控制详解
算法·leetcode·矩阵
待磨的钝刨3 天前
深入理解主成分分析(PCA)
人工智能·线性代数·算法·机器学习
Xzaveir_7773 天前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
闪电悠米4 天前
力扣hot100-73.矩阵置零-标记数组详解
算法·leetcode·矩阵