LeetCode - LCR 146- 螺旋遍历二维数组

LCR 146题

题目描述:

给定一个二维数组 array,请返回「螺旋遍历」该数组的结果。

螺旋遍历:从左上角开始,按照 向右向下向左向上 的顺序 依次 提取元素,然后再进入内部一层重复相同的步骤,直到提取完所有元素。

image.png

**题解思路:**这道题和力扣54题一样题解见https://blog.csdn.net/Miss_croal/article/details/141180630?spm=1001.2014.3001.5502,唯一不一样的就是边界,这个会有 0 的情况,所以一定要把判断放到最前面!

class Solution {public int[] spiralArray(int[][] array) {// 样例中有一维空数组,一定要放到最前面来判断!!!否则会显示下标越界if(array.length == 0) return new int[0];int m = array.length;int n = array[0].length;int[] res = new int[m * n];int i = 0, j = 0, x = 0, y = 0, index = 0, offset = 1;int loop = 0;while (loop < Math.min(m, n) / 2) {// 向右for (j = y; j < n - offset; j++) {res[index++] = array[x][j];}// 向下for (i = x; i < m - offset; i++) {res[index++] = array[i][j];}// 向左for (; j > y; j--) {res[index++] = array[i][j];}// 向上for (; i > x; i--) {res[index++] = array[i][j];}// 更新x++;y++;offset++;loop++;}// 判断最后要添加的是中间行还是中间列if (Math.min(m, n) % 2 == 1) {if (m > n) {// 添加中间列for (int t = 0; t < (m - n + 1); t++) {res[index++] = array[x++][y];}} else {// 添加中间行for (int t = 0; t < (n - m + 1); t++) {res[index++] = array[x][y++];}}}return res;}
}

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

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

相关文章

MySQL数据库入门,pycharm连接数据库—详细讲解

一.安装MySQL 1.常用MySQL5.7&#xff0c;首先安装MySQL&#xff0c; &#xff08;一&#xff09; &#xff08;二&#xff09; &#xff08;三&#xff09; &#xff08;四&#xff09; &#xff08;五&#xff09; 2.配置环境变量 打开MySQL安装路径&#xff0c;在其中找到…

ArcGis在线地图插件Maponline(好用版)

ArcGis加载插件&#xff0c;可在线浏览谷歌地图、天地图、高德地图、必应地图等多种&#xff0c;包含街道、影像、标注地图等信息&#xff08;谷歌地图需自备上网手段&#xff09;&#xff0c;免费注册账号即可使用&#xff0c;可加载无水印底图。 与大地2000坐标无需配准直接使…

洛杉物理服务器怎么样?

洛杉矶作为美国科技和互联网的重要中心&#xff0c;物理服务器的质量通常非常高&#xff0c;可以提供卓越的性能、强大的安全性、多样的配置选项和专业的服务支持。以下是对洛杉物理服务器的详细介绍。 1. 优质的性能 稳定的网络连接&#xff1a;洛杉矶物理服务器位于先进的数据…

day32+学习记录

一.算法练习 509.斐波那契数 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)&#xf…

一键运行RocketMQ5.3和Dashboard

一键运行RocketMQ5.3和Dashboard 目录 一键运行RocketMQ5.3和Dashboard通过Docker Compose 来一键启动运行的容器包括docker-compose.yml文件运行命令启动本地效果查看 参考信息 通过Docker Compose 来一键启动 运行的容器包括 NameServerBrokerProxyDashBoard docker-compo…

关于Qt的系统总结

查看详情http://100bcw.com/qt6.htm 编译环境与开发流程 开发QT有两种IDE可以使用,一种是使用 VS + Qt 的插件,另一种就是使用QtCreator工具。前一种是微软的工具,用的都比较多容易上手,缺点是信号槽的支持不太好,需要手写,不能自动生成,另外可能有中文编码的问题。后一…

c语言 图片.bmp读写示例

1 图片.bmp数据结构 BMP&#xff08;Bitmap&#xff09;文件格式是一种简单的位图图像格式&#xff0c;其数据结构分为几个主要部分&#xff1a;文件头、信息头、调色板&#xff08;可选&#xff09;和像素数据。下面是各部分的详细说明。 文件头&#xff08;File Header&…

东晟时尚服饰文化传承与发展研发中心成立

近期&#xff0c;东晟时尚创新科技&#xff08;北京&#xff09;有限公司宣布成立东晟时尚服饰文化传承与发展研发中心&#xff0c;此举标志着公司在促进中国传统文化与现代时尚产业结合方面迈出了关键步伐。 作为一家在时尚科技推广和设计研发应用服务领域具有战略眼光的企业&…

【问题记录+总结】VS Code Tex Live 2024 Latex Workshop Springer模板----更新ing

目录 Summary 道阻且长 少即是多 兵马未动粮草先行 没有万能 和一劳永逸 具体问题具体分析 心态 Detail 1、关于模板[官网] 2、settings.json 3、虫和杀虫剂 4、擦 换成Tex Studio都好了。。。 Summary 道阻且长 某中意期刊&#xff0c;只有Latex。之前只简单用过…

部署 K8s 图形化管理工具 Dashboard

文章目录 一、Dashboard 概述二、GitHub 地址三、Dashboard 部署安装1、选择兼容版本2、下载配置文件3、添加 Dashboard 的Service类型4、应用部署5、查看 kubernetes-dashboard 命名空间下资源状态6、创建访问账户7、授权8、获取账号token9、1.24 版本以后的需要创建一个Pod 四…

C++ 11相关新特性(lambda表达式与function包装器)

目录 lambda表达式 引入 lambda表达式介绍 lambda表达式捕捉列表的传递形式 lambda表达式的原理 包装器 包装器的基本使用 包装器与重载函数 包装器的使用 绑定 C 11 新特性 lambda表达式 引入 在C 98中&#xff0c;对于sort函数来说&#xff0c;如果需要根据不同的比较方式实现…

自闭症青年的行为特征有哪些

自闭症&#xff0c;又称孤独症&#xff0c;是一种神经发育障碍&#xff0c;它不仅影响儿童的成长&#xff0c;也会在青年时期展现出一系列独特的行为特征。了解这些特征对于更好地支持和帮助自闭症青年融入社会至关重要。 社交互动方面的困难是自闭症青年较为显著的特征之一。他…

Kubectl 常用命令汇总大全

kubectl 是 Kubernetes 自带的客户端&#xff0c;可以用它来直接操作 Kubernetes 集群。 从用户角度来说&#xff0c;kubectl 就是控制 Kubernetes 的驾驶舱&#xff0c;它允许你执行所有可能的 Kubernetes 操作&#xff1b;从技术角度来看&#xff0c;kubectl 就是 Kubernetes…

openEuler系统安装Visual Studio Code

openEuler系统安装Visual Studio Code 背景安装密钥和存储库更新包缓存并使用dnf安装包Fedora 22及以上版本旧版本使用yum 安装过程截图安装成功看桌面效果 背景 openEuler(openEuler-24.03-LTS)安装了麒麟UKUI桌面但是没有麒麟软件商店想安装Visual Studio Code 安装密钥和…

专业剪辑新选择!2024年TOP榜达芬奇剪辑软件VS三大劲敌的较量

到了2024年&#xff0c;科技飞快地进步&#xff0c;视频剪辑这一块儿也变了不少。老的剪辑方法一直被刷新&#xff0c;新的软件一个接一个冒出来&#xff0c;像达芬奇剪辑软件这样的&#xff0c;都成了拍视频的人的好伙伴。咱们今天就来聊聊这几款软件有啥神奇的&#xff0c;比…

安全基础学习-RC4加密算法

这里仅仅记录一些基础的概念。后期有需求进一步扩展。 RC4 是一种对称流加密算法&#xff0c;由罗恩里维斯特&#xff08;Ron Rivest&#xff09;于1987年设计。RC4 的设计目的是提供一种简单且高效的加密方法。尽管 RC4 曾经广泛使用&#xff0c;但它的安全性在现代已受到质疑…

Modbus 通信协议详解

目录 一、概述二、Modbus 的作用三、Modbus 的工作原理1、四种数据类型2、三种工作模式3、三类功能码3.1 标志功能码3.2 Modbus 封装接口3.3 异常 4、Modbus 协议层4.1 协议数据单元4.2 访问数据4.3 数据模型寻址4.3.1 数据寻址范围4.3.2 数据地址起始值 4.4 大数据类型4.4.1 位…

Java面试题———分布式篇

目录 1、什么是分布式事务 2、什么是CAP理论 3、为什么分布式系统中无法同时AC 4、什么是BASE理论 5、分布式事务的解决方案有哪些 6、Seata的架构是什么 7、XA模式的工作流程是什么 8、AT模型的工作原理是什么 9、TCC模型的工作原理是什么 1、什么是分布式事务 在分…

java:实现简单的验证码功能

效果 实现思路 验证码图片的url由后端的一个Controller生成&#xff0c;前端请求这个Controller接口的时候根据当前时间生成一个uuid&#xff0c;并把这个uuid在前端使用localStorage缓存起来&#xff0c;下一次还是从缓存中获取。 Controller生成验证码之后&#xff0c;把前…

spring-boot-3.2.6+spring-security-6.2.4+oauth2整合github示例

一、添加依赖 在 pom.xml 中添加如下依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"h…