⭐力扣刷题:螺旋矩阵

题目:
给你一个 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]

解析:
这里的核心思路是:边界收缩法

  1. 建立四个边界指针
    我们维护四个变量来标记当前要遍历的"层"的边界:

    top:当前层的顶部行索引

    bottom:当前层的底部行索引

    left:当前层的左边界列索引

    right:当前层的右边界列索引

    初始化时:

    top = 0(矩阵最上面一行)

    bottom = 矩阵行数-1(矩阵最下面一行)

    left = 0(矩阵最左边一列)

    right = 矩阵列数-1(矩阵最右边一列)

  2. 循环执行四个方向的遍历
    每一轮循环完成一圈的遍历,包含四个阶段:

    阶段1️⃣:从左到右遍历上边界

    从 left 到 right,遍历第 top 行的元素

    完成后,top++(上边界向下移动一层)

    阶段2️⃣:从上到下遍历右边界

    从 top 到 bottom,遍历第 right 列的元素

    完成后,right–(右边界向左移动一层)

    阶段3️⃣:从右到左遍历下边界

    从 right 到 left,遍历第 bottom 行的元素

    完成后,bottom–(下边界向上移动一层)

    阶段4️⃣:从下到上遍历左边界

    从 bottom 到 top,遍历第 left 列的元素

    完成后,left++(左边界向右移动一层)

  3. 终止条件
    每个方向遍历结束后,都需要检查是否还有元素未遍历:

    当 top > bottom 时:所有行都已遍历完

    当 left > right 时:所有列都已遍历完

    只要满足其中一个条件,说明所有元素都已遍历完毕,循环终止。

具体代码:

/** * @param {number[][]} matrix * @return {number[]} */varspiralOrder=function(matrix){letleft=0letright=matrix[0].length-1lettop=0letbottom=matrix.length-1letres=[]while(true){//从左到右遍历上边界for(leti=left;i<=right;i++){res.push(matrix[top][i])}top++if(top>bottom)break//从上到下遍历右边界for(letj=top;j<=bottom;j++){res.push(matrix[j][right])}right--if(right<left)break//从右到左遍历下边界for(letk=right;k>=left;k--){res.push(matrix[bottom][k])}bottom--if(bottom<top)break//从下到上遍历左边界for(letm=bottom;m>=top;m--){res.push(matrix[m][left])}left++if(left>right)break}returnres};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1012902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年靠谱的桌面主被动隔振台/主被动隔振平台厂家推荐及采购参考 - 品牌宣传支持者

2025年靠谱的桌面主被动隔振台/主被动隔振平台厂家推荐及采购参考行业背景与市场趋势随着精密制造、半导体、生物医药和光学检测等行业的快速发展,对实验环境稳定性的要求日益提高。桌面主被动隔振平台作为保障精密仪…

GitHub一小时速成指南:从零基础到熟练操作

GitHub一小时速成指南&#xff1a;从零基础到熟练操作 【免费下载链接】introduction-to-github Get started using GitHub in less than an hour. 项目地址: https://gitcode.com/GitHub_Trending/in/introduction-to-github 还记得第一次接触GitHub时的困惑吗&#xf…

5步掌握Loco+Tauri:构建高性能跨平台桌面应用的终极指南

5步掌握LocoTauri&#xff1a;构建高性能跨平台桌面应用的终极指南 【免费下载链接】loco &#x1f682; &#x1f980; The one-person framework for Rust for side-projects and startups 项目地址: https://gitcode.com/GitHub_Trending/lo/loco 还在为桌面应用开发…

Armbian嵌入式音频系统:从硬件驱动到应用层的完整解决方案

Armbian嵌入式音频系统&#xff1a;从硬件驱动到应用层的完整解决方案 【免费下载链接】build Armbian Linux Build Framework 项目地址: https://gitcode.com/GitHub_Trending/bu/build 在嵌入式系统开发领域&#xff0c;音频功能的实现往往是开发者面临的重要挑战。Ar…

2025年评价高的超高速摄像机厂家最新推荐权威榜 - 品牌宣传支持者

2025年评价高的超高速摄像机厂家推荐权威榜行业背景与市场趋势随着工业4.0和智能制造时代的深入发展,超高速摄像机作为精密测量与瞬态捕捉的核心设备,在科研、工业检测、国防军工等领域的应用日益广泛。2025年全球超…

《极品家丁七改版》终极珍藏完整版:一键下载无雷精校全本资源

《极品家丁七改版》终极珍藏完整版&#xff1a;一键下载无雷精校全本资源 【免费下载链接】极品家丁七改版珍藏七改加料无雷精校全本资源下载介绍 《极品家丁&#xff08;七改版&#xff09;》是一部广受欢迎的经典小说&#xff0c;此版本经过精心校对与优化&#xff0c;保留了…

2025年口碑好的高速相机应用场景/高速相机用户口碑最好的厂家榜 - 品牌宣传支持者

2025年口碑好的高速相机应用场景与用户口碑厂家榜行业背景与市场趋势随着工业4.0和智能制造时代的全面到来,高速相机作为精密测量与瞬态捕捉的核心工具,正迎来前所未有的发展机遇。2025年全球高速相机市场规模预计将…

2025年比较好的糖果铁盒行业内知名厂家排行榜 - 品牌宣传支持者

2025年糖果铁盒行业内知名厂家排行榜:专业采购指南行业背景与市场趋势随着全球糖果消费市场的稳步增长,作为糖果包装重要组成部分的铁盒包装行业也迎来了新的发展机遇。2024年数据显示,全球糖果市场规模已突破2000亿…

unique_ptr::release

释放给调用方返回的存储指针的所有权,并将存储的指针值设置为nullptr。 属性值/返回值 返回存储的指针。 备注 使用 release接管unique_ptr存储的原始指针的所有权。 调用方负责返回的指针的删除。 unique-ptr设置为空…

Transformer+Listwise:一文读懂个性化重排模型PRM

目录引言一、PRM的诞生背景&#xff1a;推荐重排的核心痛点二、PRM的核心架构&#xff1a;三大模块的协同工作&#xff08;基于10个item案例&#xff09;&#xff08;一&#xff09;输入层&#xff1a;多特征融合的物品表征&#xff08;二&#xff09;编码层&#xff1a;Transf…

Lucy Edit AI:用文字重新定义视频编辑的智能革命

Lucy Edit AI&#xff1a;用文字重新定义视频编辑的智能革命 【免费下载链接】Lucy-Edit-Dev 项目地址: https://ai.gitcode.com/hf_mirrors/decart-ai/Lucy-Edit-Dev 在数字内容创作飞速发展的今天&#xff0c;视频编辑正经历一场前所未有的技术变革。DecartAI推出的L…

go字符串之替换数字算法

题目链接&#xff1a; 54. 替换数字&#xff08;第八期模拟笔试&#xff09; 题目&#xff1a; 给定一个字符串 s&#xff0c;它包含小写字母和数字字符&#xff0c;请编写一个函数&#xff0c;将字符串中的字母字符保持不变&#xff0c;而将每个数字字符替换为number。 例…

终极邮件编辑器:轻松拖拽,快速打造专业级邮件

终极邮件编辑器&#xff1a;轻松拖拽&#xff0c;快速打造专业级邮件 【免费下载链接】easy-email-editor Easy Email Editor is a feature-rich, top open-source SaaS email editor based on React and MJML. 项目地址: https://gitcode.com/gh_mirrors/ea/easy-email-edit…

React Native Snap Carousel 实战进阶:从基础配置到高级特效

React Native Snap Carousel 实战进阶&#xff1a;从基础配置到高级特效 【免费下载链接】react-native-snap-carousel 项目地址: https://gitcode.com/gh_mirrors/rea/react-native-snap-carousel &#x1f3af; 轮播组件在现代移动应用中的核心价值 在当今移动应用生…

专业实验室改造,必须避开的5大坑

专业实验室改造&#xff0c;必须避开的5大坑&#xff0c;别让心血白费&#xff01;朋友们&#xff0c;不知道你们有没有这样的经历&#xff1a;实验室用着用着&#xff0c;总觉得哪儿不对劲——设备摆不开&#xff0c;通风不给力&#xff0c;线路乱如麻&#xff0c;想升级个仪器…

2025成都火锅品牌推荐榜,网红店谁主沉浮?川渝火锅/特色美食/老火锅/火锅/火锅店/美食/重庆火锅火锅品牌必吃榜 - 品牌推荐师

引言 作为中国火锅文化的重要发源地,成都火锅市场始终保持着蓬勃生机。近年来,一批兼具传统工艺与创新理念的火锅品牌在激烈的市场竞争中脱颖而出,成为消费者追捧的网红打卡地。本文基于市场调研数据、消费者口碑评…

Qwen3-VL本地部署实战:解锁PC端多模态AI视觉理解能力

Qwen3-VL本地部署实战&#xff1a;解锁PC端多模态AI视觉理解能力 【免费下载链接】Qwen3-VL-4B-Instruct-unsloth-bnb-4bit 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Qwen3-VL-4B-Instruct-unsloth-bnb-4bit 还在为云端AI服务的高延迟和高成本烦恼吗&…

2025年热门的事件相机技术厂家选购指南与推荐 - 品牌宣传支持者

2025年热门的事件相机技术厂家选购指南与推荐行业背景与市场趋势事件相机(Event Camera)作为新一代视觉传感器技术,近年来在计算机视觉、自动驾驶、工业检测和机器人等领域展现出巨大潜力。与传统帧式相机不同,事件…

静态博客迁移实战:从WordPress卡顿到Gridea极速体验

你是否经历过这样的场景&#xff1a;在WordPress后台编辑文章时&#xff0c;页面加载缓慢得让人焦躁&#xff1b;每个月都要为服务器续费而心疼钱包&#xff1b;还要时刻担心网站被恶意攻击的风险&#xff1f;如果你正在寻找一种更轻量、更快速、更安全的博客解决方案&#xff…

基于工程分支的组件版本号策略:实现可控修复与主分支平滑升级

1. 工程分支场景分析 1.1 典型场景 在产品定制化或长期支持版本中&#xff0c;常见以下需求&#xff1a; 从主分支的特定发布点&#xff08;如LTS版本&#xff09;拉取工程分支仅引入必要的问题修复&#xff0c;拒绝功能更新工程分支需要有独立的版本演进路径最终用户可无缝从工…