当前位置: 首页 > news >正文

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] = 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
http://www.lryc.cn/news/290967.html

相关文章:

  • bash 5.2中文修订5
  • 5GNR解调分析手持式频谱分析仪
  • 互联网加竞赛 基于深度学习的人脸表情识别
  • python-自动化篇-运维-监控-简单实例-道出如何使⽤Python进⾏网络监控?
  • SpringBoot 配置类解析
  • 全套军事和民用监听系统
  • MicroPython核心:编译器
  • R语言【taxlist】——tax2traits():将分类信息设置为分类单元特征
  • CTF-WEB的知识体系
  • 【Spring框架】@Cacheable注解:缓存最佳实践
  • iZotope RX 10.4.2 mac激活版 音频修复和增强工具
  • vue核心知识点
  • 【乳腺肿瘤诊断分类及预测】基于Elman神经网络
  • 【kubernets】由Evicted状态的Pod探讨k8s中pod的驱逐策略
  • vxe-table3.0的表格树如何做深层查找,返回搜索关键字的树形结构
  • 幻兽帕鲁越玩越卡,内存溢出问题如何解决?
  • C++_list
  • 使用docker部署mongodb
  • C#,打印漂亮的贝尔三角形(Bell Triangle)的源程序
  • 开源电商系统
  • 责任链模式在java中的实现
  • 粤嵌Gec6818---小项目功能实现简单步骤(RFID+图片显示+音乐+视频)
  • opencv学习 特征提取
  • 关于maven项目构建的解释
  • IMU/捷联惯导常见的术语,以及性能评价标准(附Python解析代码)
  • Debezium发布历史98
  • APUE学习之进程间通信(IPC)(下篇)
  • 【Java 设计模式】行为型之中介者模式
  • MySql 慢SQL配置,查询,处理
  • 算法:分界线