合并两个有序数组题目讲解

news2024/11/24 3:56:17

一:题目

非递减顺序可以理解为:不完全递增顺序,它不是完全的递增,会存在前后相等的情况,比如

[1,2,2,3,5,6] ,这就是非递减顺序。

二:思路讲解

1:因为第一个数组nums1,有足够的空间去储存结果,所以我们不创建新数组,我们边比较边存储。

2:取三个位置,第一个end1位置为nums1数组有效值的最后一个(第m个元素,下标为m-),第二个end2是nums2数组的最后一个元素(第n个元素,下标为n-1),这两个位置,倒着比较,较大值就储存到nums1中最后的位置(end),如果相等取nums2和nums1到end去都一样,这样每次比较的较大值就从nums1数组的最后面依次往前插入。

3:比较后数组的两种情况

第一种情况: nums2比较完成,nums1没有比较完成

数组nums1为[1,2,3,0,0,0],数组nums2为[2,5,6]

第一步:end1和end2比较,较大值为end2,所以end就变成了end2。

第二步:end2和end都往前移动一个位置,然后继续和end1比较,结果还是end2大,所以end变成了end2.

第三步:end2和end往前移动一个位置,然后end2和end1继续比较,结果是end1大,所以end变成了end1.

第四步:end和end1往前以一个位置,然后end1和end2继续比较,结果两者相等,所以end变成了end2,此时end2和end都要往前移动一个位置,所以nums2就遍历完了。

nums2遍历完的这种情况呢,我们发现nums1就是我们想要的答案[1,2,2,3,5,6],不需要再做任何的补充即可。

第二种情况: nums1比较完成,nums2没有比较完成。

数组nums1为[2,5,6,0,0,0],数组nums2为[1,2,3]

第一步:end1和end2比较,结果是end1大,所以end变成了end1.

第二步:end1和end往前移动一个位置,然后end1和end2比较,结果end1大,所以end变成了end1。

第三步:end和end1往前移动一个位置,end1和end2比较,结果end2大,所以end变成了end2。

第四步:end和end2往前移动一个位置,然后end1和end2比较,结果两者相等,所以end变成了end2。

第五步:end和end2都往前移动一个位置,然后end1和end2比较,结果是end1大,所以end变成了end1。

此时的nums1已经被比较完了,但是nums1的数组为[2,2,2,3,5,6],并不是正确答案!

解决方法:将nums2中剩余的全部放进nums1中对应的没被修改过的位置,比如图中的end2放进nums1中对应的end的位置,此时的end指向的位置的2虽然被用去比较过了,但这个位置本身是没有被修改过的。

代码展示:

 

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

DF-PEG-DF,Benzaldehyde-PEG-Benzaldehyde可用于修饰蛋白质、多肽等材料,

【试剂详情】 英文名称 DF-PEG-DF,Benzaldehyde-PEG-Benzaldehyde 中文名称 聚乙二醇二苯甲醛,苯甲醛-聚乙二醇-苯甲醛 外观性状 由分子量决定,固体或者液体。 分子量 0.4k,0.6k,1k,2k,3…

【编译器识别】2024深圳杯C题24页参考论文+1-3小问完整解题代码

一、问题研究 【编译器识别】2024深圳杯C题24页参考论文1-3小问完整解题代码https://www.jdmm.cc/file/2710545/ 为了回答这些问题,我们需要进行一系列的编译实验、分析编译结果,并构建判别函数。以下是对这些问题的初步分析和可能的方法: …

【Git】Git学习-15:分支简介和基本操作

学习视频链接:【GeekHour】一小时Git教程_哔哩哔哩_bilibili​编辑https://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780https://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780 git bran…

嵌入式linux学习第三天汇编语言点灯

嵌入式linux学习第三天汇编语言点灯 今天学习如何在linux板子上点灯。 I.MX6U GPIO 详解 我们发现I.MX6U GPIO是分为两类的,:SNVS 域的和通用的。在讨论i.MX6U或类似的复杂微处理器时,了解其GPIO(通用输入输出)引脚…

分享一个php常驻内存多进程任务的扩展

前言 最近在摸鱼的时候发现一个PHP常驻内存多进程任务扩展包:EasyTask: PHP常驻内存多进程任务管理器,支持定时任务(PHP resident memory multi-process task manager, supports timing tasks) (gitee.com),支持php使用多线程处理任务。之前…

神秘模型GPT2-Chatbot迅速走红:效果等同GPT-4

🧙‍♂️ 诸位好,吾乃斜杠君,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。 📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。 &#…

docker安装elasticsearch:7.17.21

docker安装elasticsearch:7.17.21 下载对应版本的docker镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.21启动容器 docker run --name elasticsearch-test -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -t docker.elastic.…

序列化和反序列化是什么?Java中实现Serializable接口的代码实例

序列化和反序列化是编程处理对象数据的重要概念,特别是在数据存储、网络通信和分布式系统中。 序列化是指将程序中的对象(如数据结构、类实例等)的状态信息转换为可以存储或传输的格式的过程。这个过程会将对象的公共和私有字段(…

Tomcat端口占用解决方案

Windows操作系统 出现这种情况: Error was Port already in use :40001;nested exception is :java.net.BindException: Address already in use : JVM_Bind; 步骤1:按下winR键,输入cmd 步骤2:输入以下命令 netstat …

R语言【Tidyverse、Tidymodel】机器学习

机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”,是发现新规律,总结和分析实验结果的利器。机器学习涉及的理论和方法繁多,编程相当复杂,一直是阻碍机器学习大范围应用的主要困难之一,由此诞生了Python…

set-cookie字段,cookie文件介绍+原理,如何查看cookie文件,在基于http协议服务器的代码实现,cookie存在问题+解决(会话机制)

目录 Set-Cookie 引入 介绍 原理 描述 图解 保存"cookie文件"的方法 内存级 文件级 查看cookie文件 示例 实现 介绍 代码 核心代码 全部代码 示例 cookie存在的问题 介绍 存在的必要性 如何解决 问题梳理 引入 会话机制 -- 解决信息泄漏…

UART、TIMER

UART简介(通用异步收发器,通常称串口) UART,是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛。 UART作为异步串行通信协议的一种,工作原理是将传输数据的每个二进制位一位接一位地传输。…

谷歌开源!用 js 编写 Shell 脚本! | 开源日报 No.247

google/zx Stars: 41.4k License: Apache-2.0 zx 是一个用于编写更好脚本的工具。 提供有用的包装器,简化了对 child_process 的操作转义参数并提供合理的默认值使用 JavaScript 编写复杂脚本时比 Bash 更方便可以直接使用 npm 安装 dani-garcia/vaultwarden St…

72207-80-8,Epoxide-PEG-Epoxide是一种具有两个环氧基团的线性双功能PEG(聚乙二醇)试剂

【试剂详情】 英文名称 Ep-PEG-Ep,Epoxide-PEG-Epoxide 中文名称 环氧基-聚乙二醇-环氧基,聚乙二醇二缩水甘油醚 CAS号 72207-80-8 外观性状 由分子量决定,固体或者液体。 分子量 0.4k,0.6k,1k,2k…

(自适应手机端)物流运输快递仓储网站模板 - 带三级栏目

(自适应手机端)物流运输快递仓储网站模板 - 带三级栏目PbootCMS内核开发的网站模板,该模板适用于物流运输网站、仓储货运网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可;自适应手机端,同一个后台…

CSS-背景属性

目录 背景属性 background-color (背景颜色 ) background-image (背景图片 ) background-repeat (背景图平铺方式 ) no-repeat 不平铺 repeat-x 水平方向平铺 repeat-y 垂直方向平铺 repeat 平铺 background-position (背景图位置) background-size (背景缩…

电脑内存不足怎么清理?教你3招轻松解决

电脑内存不足是影响电脑性能的常见问题之一,它会导致电脑运行缓慢、应用程序响应迟钝等情况。为了解决这个问题,需要对电脑内存进行清理和优化。本文将介绍电脑内存不足怎么清理的三种方法,帮助您提高电脑性能。 方法1:清理临时文…

一文搞懂SSL证书收费与免费选择攻略

在互联网技术高速发展的今天,网络安全问题已经成为企业和个人不可忽视的重要议题。SSL(Secure Sockets Layer)证书,作为一种安全协议,能够为网站提供加密通信,确保数据的传输过程中不被窃取或篡改&#xff…

荟敏堂·中医优势专科建设新质生产力发展论坛在京召开

原题:《荟敏堂中医优势专科建设新质生产力发展论坛在京召开——周超凡中医治则学思想传承研讨会成功举办》 会议现场照片 仟江水商业电讯(5月8日 北京 委托发布)日前,周超凡中医治则学思想传承研讨会暨中医优势专科建设新质生产力…

HTTP免费升级到HTTPS攻略

HTTPS就是在HTTP的基础上加入了SSL,将一个使用HTTP的网站免费升级到HTTPS的关键就是申请一个免费的SSL证书 具体步骤如下 1 获取免费SSL证书 国内的JoySSL 提供不限量免费的SSL/TLS证书。根据自己的需求选择证书类型(登录JoySSL官网,创建账号…