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

python每日一题——19螺旋矩阵

题目

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

示例 1:
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]
示例 2:
输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出:[1,2,3,4,8,12,11,10,9,5,6,7]

答案

这道题要求我们按照顺时针螺旋顺序返回矩阵中的所有元素。我们可以使用四个变量来定义矩阵的上下左右边界,然后按照右-下-左-上的顺序遍历矩阵,同时更新这四个边界。

具体实现如下:

def spiralOrder(matrix):""":type matrix: List[List[int]]:rtype: List[int]"""# 定义矩阵的上下左右边界top, bottom = 0, len(matrix) - 1left, right = 0, len(matrix[0]) - 1# 定义结果列表res = []# 按照右-下-左-上的顺序遍历矩阵while left <= right and top <= bottom:# 右for i in range(left, right + 1):res.append(matrix[top][i])top += 1# 下for i in range(top, bottom + 1):res.append(matrix[i][right])right -= 1# 左if top <= bottom:for i in range(right, left - 1, -1):res.append(matrix[bottom][i])bottom -= 1# 上if left <= right:for i in range(bottom, top - 1, -1):res.append(matrix[i][left])left += 1return res

在这个实现中,我们首先定义了矩阵的上下左右边界,然后按照右-下-左-上的顺序遍历矩阵,同时更新这四个边界。在遍历过程中,我们使用一个列表来保存遍历到的元素,最后返回这个列表即可。

相关文章:

  • 【分布式事务】Seata 开源的分布式事务解决方案
  • Jmeter-分布式压测(远程启动服务器,windows)
  • WT2605-24SS录放音语音芯片:便捷按键功能提升用户体验
  • 2023年第十二届数学建模国际赛小美赛A题太阳黑子预测求解分析
  • 【区块链】产品经理的NFT初探
  • C#:程序发布的大小控制
  • 【AUTOSAR OS】如何处理高频高速任务的挑战?
  • Discuz论坛自动采集发布软件
  • SQL注入漏洞的检测及防御方法
  • Hdoop学习笔记(HDP)-Part.16 安装HBase
  • 一维和多维随机变量的高斯分布(正态分布)
  • 一文解决msxml3.dll文件缺失问题,快速修复msxml3.dll
  • uniapp地图基本使用及解决添加markers不生效问题?
  • linux 内核工作队列技术原理
  • 戴尔科技推出全新96核Precision 7875塔式工作站
  • Computed property XXX was assigned to but it has no setter
  • docker python 配置
  • es的写入过程
  • git 常用命令
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • js ES6 求数组的交集,并集,还有差集
  • Rancher-k8s加速安装文档
  • vue-router的history模式发布配置
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 闭包--闭包作用之保存(一)
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 工作中总结前端开发流程--vue项目
  • 基于组件的设计工作流与界面抽象
  • 前端js -- this指向总结。
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • elasticsearch-head插件安装
  • ​queue --- 一个同步的队列类​
  • #宝哥教你#查看jquery绑定的事件函数
  • %check_box% in rails :coditions={:has_many , :through}
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (20050108)又读《平凡的世界》
  • (4)logging(日志模块)
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (附源码)php新闻发布平台 毕业设计 141646
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • .gitignore文件_Git:.gitignore
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net 程序发生了一个不可捕获的异常
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .Net中间语言BeforeFieldInit
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @staticmethod和@classmethod的作用与区别
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • []error LNK2001: unresolved external symbol _m