如何解决leetcode中合并两个有序数组的问题
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下如何解决leetcode中合并两个有序数组的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!题目链接h
千家信息网最后更新 2026年11月01日如何解决leetcode中合并两个有序数组的问题
小编给大家分享一下如何解决leetcode中合并两个有序数组的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
题目链接
https://leetcode-cn.com/problems/merge-sorted-array/
题目描述
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。
说明:
初始化
nums1和nums2的元素数量分别为m和n。你可以假设
nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。
示例:
输入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3
输出: [1,2,2,3,5,6]
解题方案
思路
标签:从后向前数组遍历
因为
nums1的空间都集中在后面,所以从后向前处理排序的数据会更好,节省空间,一边遍历一边将值填充进去设置指针
len1和len2分别指向nums1和nums2的有数字尾部,从尾部值开始比较遍历,同时设置指针len指向nums1的最末尾,每次遍历比较值大小之后,则进行填充当
len1<0时遍历结束,此时nums2中海油数据未拷贝完全,将其直接拷贝到nums1的前面,最后得到结果数组时间复杂度:O(m+n)
代码
Java版本
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int len1 = m - 1;
int len2 = n - 1;
int len = m + n - 1;
while(len1 >= 0 && len2 >= 0) {
// 注意--符号在后面,表示先进行计算再减1,这种缩写缩短了代码
nums1[len--] = nums1[len1] > nums2[len2] ? nums1[len1--] : nums2[len2--];
}
// 表示将nums2数组从下标0位置开始,拷贝到nums1数组中,从下标0位置开始,长度为len2+1
System.arraycopy(nums2, 0, nums1, 0, len2 + 1);
}
}
JavaScript版本
/**
* @param {number[]} nums1
* @param {number} m
* @param {number[]} nums2
* @param {number} n
* @return {void} Do not return anything, modify nums1 in-place instead.
*/
var merge = function(nums1, m, nums2, n) {
let len1 = m - 1;
let len2 = n - 1;
let len = m + n - 1;
while(len1 >= 0 && len2 >= 0) {
// 注意--符号在后面,表示先进行计算再减1,这种缩写缩短了代码
nums1[len--] = nums1[len1] > nums2[len2] ? nums1[len1--] : nums2[len2--];
}
function arrayCopy(src, srcIndex, dest, destIndex, length) {
dest.splice(destIndex, length, ...src.slice(srcIndex, srcIndex + length));
}
// 表示将nums2数组从下标0位置开始,拷贝到nums1数组中,从下标0位置开始,长度为len2+1
arrayCopy(nums2, 0, nums1, 0, len2 + 1);
};
画解


以上是"如何解决leetcode中合并两个有序数组的问题"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
数组
有序
下标
位置
拷贝
空间
两个
代码
篇文章
问题
元素
内容
大小
尾部
指向
指针
数据
版本
符号
缩写
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手冲咖啡和咖啡机区别
科技互联网政务服务
盈实互联网科技
善班互联网科技
互联网科技公司官网
狮子座互联网科技有限公司
壕鑫互联网络科技
互联网前沿科技
中盈科技互联网信息有限公司
互联网科技寓意
银川新华互联网科技职业技术培训学校图片
成都铂石互联网科技做什么的
浙江互联网科技研学营
黑科技闪耀互联网之光
链环科技传统企业怎么转型互联网
畅思互联网科技
西安小鹰速贷互联网科技有限公司
互联网科技圈年度人物
中国互联网有什么科技
互联网科技对化妆品行业
花魁咖啡
深圳艾佳互联网科技
博兴的互联网电子科技公司
互联网大会黑科技排名
重庆互联网医院沙龙医盟信息科技
华中科技大学互联网的牛人
21世纪互联网科技成就
互联网科技包装股份有限公司上市
2021世界互联网领先科技成果发布
马化腾互联网科技教学