leetcode59. 螺旋矩阵 II

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] = 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

相关推荐

  1. LeetCode59 螺旋矩阵 II

    2024-01-31 09:36:03       51 阅读
  2. leetCode59. 螺旋矩阵 II

    2024-01-31 09:36:03       36 阅读
  3. 59. 螺旋矩阵 II

    2024-01-31 09:36:03       62 阅读
  4. Golang leetcode59 螺旋矩阵

    2024-01-31 09:36:03       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-31 09:36:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-31 09:36:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-31 09:36:03       82 阅读
  4. Python语言-面向对象

    2024-01-31 09:36:03       91 阅读

热门阅读

  1. 头歌C语言指针进阶

    2024-01-31 09:36:03       41 阅读
  2. 洛谷p1216数字三角形

    2024-01-31 09:36:03       58 阅读
  3. 刷题09 双指针

    2024-01-31 09:36:03       59 阅读
  4. springboot3整合swagger

    2024-01-31 09:36:03       51 阅读
  5. C# LING查询语法学习,扩展方法的使用

    2024-01-31 09:36:03       41 阅读
  6. 大白话理解大语言模型预训练和微调

    2024-01-31 09:36:03       59 阅读
  7. centos 7 install k3s

    2024-01-31 09:36:03       61 阅读
  8. C++_list

    C++_list

    2024-01-31 09:36:03      42 阅读