有序数组的合并

简介: 有序数组的合并

题目:合并两个有序数组;两个数组nums1和nums2,请你将nums2合并到nums1中,使nums1成为一个有序数组;nums1为m个元素,n为n个元素,nums1的空间大小设为m+n

注意:是把num2里面的元素放到num1中,不是创建一个新数组进行存储


解析:


这道题目来源于力扣的第88题,因为力扣是接口型的操作方式,这里我们只给出主要的函数实现和思路解析:


例如:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3      输出:[1,2,2,3,5,6]

解释:需要合并 [1,2,3] 和 [2,5,6] 。合并结果是 [1,2,2,3,5,6]


那么是怎样的合并的的呢?为了防止数据被覆盖,当然是从后面开始插入;这里我们同样采用的是双指针法


具体核心代码:


141f757c20744b60a8f0f2a6514f8379.png


代码思路分析:


我们不妨通过画图的形式进行剖析,这样更加容易理解:



c98bc294d0814c2e8994d15ad87b5976.png


这是初始状态,接下来就是循环条件,我们要明白当两个数组从后往前移动时,不能有越界访问,所以一旦有一个数组移到下标为0的位置时,就不能往前移动了====》循环条件是:while(end1>=0 && end2 >= 0) ;然后在比较nums1[end1]和nums2[end2]的大小,谁大把谁放到nums1[end]里面;最终会有两种情况:


第一种情况:end2先为0;说明num2里的数据全部已经移到num1中了,这种情况下,不用做任何的处理,具体操作步骤如下:


449bf1e7f5524fd2a7c5d2864879afa6.png

第二种情况:end1先为0;说明num2里的数据并没有全部移到num1中了,这种情况下,我们需要单独执行一项操作,把num2里剩余的数据拷贝到num1中;具体操作如下:


d89597c1bcce4580a818b760f744c3a8.png此时是end1先=0结束;这时已经跳出循环,但是num2的数据还没有全部都插过来啊,怎么办呢?当然是单独拿出来在写一个循环,把num2剩余的数据全部插入到num1;


while(end2>=0);我们就把num2[end2]的值赋给num1[end]就可以了,之后在end--,end2--;直到所有剩余的数据全部移过去后,循环就结束啦!!!



6f862d3be0c5426e9827936feef83e5d.jpg

相关文章
|
Ubuntu Linux Windows
串口模拟工具实现测试
串口模拟工具实现测试
423 0
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
604 214
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
843 61
|
7天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1247 157
|
4天前
|
编解码 Linux 数据安全/隐私保护
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
239 138
|
7天前
|
存储 安全 固态存储
四款WIN PE工具,都可以实现U盘安装教程
Windows PE是基于NT内核的轻量系统,用于系统安装、分区管理及故障修复。本文推荐多款PE制作工具,支持U盘启动,兼容UEFI/Legacy模式,具备备份还原、驱动识别等功能,操作简便,适合新旧电脑维护使用。
521 109