Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >合并两个有序数组

合并两个有序数组

作者头像
_kyle
修改于 2023-09-23 11:51:44
修改于 2023-09-23 11:51:44
95800
代码可运行
举报
文章被收录于专栏:kyle的专栏kyle的专栏
运行总次数:0
代码可运行

题目

难度级别:简单

给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。

说明:

初始化 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]

提示:

-10^9 <= nums1[i], nums2[i] <= 10^9 nums1.length == m + n nums2.length == n

解题思路

这道题通过双指针,倒叙遍历数组进行解决。len1是nums1当前的指针,len2时nums2当前的指针。这里需要注意边界情况就是,当len1<0后,但len还存在的情况。

例如:

nums1为[4,0,0,0], m为1,nums2为[3,5,6],n为3。这时候遍历完len2是大于0的,且len也是大于0的,我们在重组数组时,应该把nums1上前面多余的0去掉,在把nums2剩余的元素放到nums1前面去。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const merge = function(nums1, m, nums2, n) {
    let len1 = m - 1
    let len2 = n - 1
    let len = m + n - 1

    while (len2 >= 0 && len1 >= 0) 
        nums1[len--] = nums1[len1] < nums2[len2] ? nums2[len2--] : nums1[len1--]

    if (len2 >= 0) 
        nums1.splice(0, len + 1, ...nums2.splice(0,len2+1))

    nums1.splice(m+n)
};

题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/merge-sorted-array

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
画解算法:88. 合并两个有序数组
https://leetcode-cn.com/problems/merge-sorted-array/
灵魂画师牧码
2019/07/11
4280
画解算法:88. 合并两个有序数组
88. 合并两个有序数组
给你两个按 「非递减顺序」 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
chuckQu
2022/08/19
6010
leetcode-easy-array-合并两个有序数组
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
shengjk1
2020/09/01
2720
【leetcode系列】88.合并两个有序数组
这道题目其实和基本排序算法中的 merge sort非常像,但是 merge sort 很多时候,合并的时候我们通常是 新建一个数组,这样就很简单。但是这道题目要求的是 原地修改.
lucifer210
2019/08/16
3750
leetcode 88. 合并两个有序数组 js实现
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
蓓蕾心晴
2022/11/28
1K0
leetcode之合并两个有序数组
这里从后往前遍历,每次比较两个数组的值,取大的覆盖到nums1数组,同时移动对应的index;最后在判断下nums2数组有没有比较完,没有的话将nums2剩余的元素复制到nums1。
code4it
2020/11/12
4540
leetcode之合并两个有序数组
LeetCode | 合并两个有序数组
题目 88. 合并两个有序数组 - 力扣(LeetCode) 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。 示例 1:
yiyun
2023/03/27
8600
LeetCode | 合并两个有序数组
leetcode:合并两个有序数组
  给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
别团等shy哥发育
2023/02/25
1.9K0
leetcode:合并两个有序数组
88 合并两个有序数组
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
木瓜煲鸡脚
2021/01/18
9510
88 合并两个有序数组
力扣 (LeetCode)-合并两个有序数组,字典,散列表
Github来源:力扣 (LeetCode)|刷题打卡 | 求星星 ✨ | 给个❤️关注,❤️点赞,❤️鼓励一下作者
达达前端
2021/03/22
1.4K0
力扣 (LeetCode)-合并两个有序数组,字典,散列表
每天一道leetcode88-合并两个有序数组
题目 每天一道leetcode88-合并两个有序数组 分类:链表 中文链接: https://leetcode-cn.com/problems/merge-sorted-array/ 英文链接 https://leetcode.com/problems/merge-sorted-array/ 题目详述 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。
乔戈里
2019/09/17
3900
☆打卡算法☆LeetCode 88、合并两个有序数组 算法解析
“给定两个递增数组和两个代表数组长度的整数,合并两个数组,返回合并后递增顺序的数组。”
恬静的小魔龙
2022/08/07
2390
☆打卡算法☆LeetCode 88、合并两个有序数组  算法解析
20T44-合并两个有序数组
https://leetcode-cn.com/problems/merge-sorted-array/
木又AI帮
2020/05/11
2480
【LeetCode】88. 合并两个有序数组 双指针
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。
韩旭051
2020/06/23
2740
【leetcode】有序数组合并
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
一条coding
2021/08/12
5270
【leetcode】有序数组合并
LeetCode 88. 合并两个有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。
Michael阿明
2022/11/26
2840
LeetCode 88. 合并两个有序数组
合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
狼啸风云
2023/10/07
2580
【小Y学算法】⚡️每日LeetCode打卡⚡️——24.合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和n ,分别表示 nums1 和 nums2 中的元素数目。
呆呆敲代码的小Y
2021/09/08
3020
【小Y学算法】⚡️每日LeetCode打卡⚡️——24.合并两个有序数组
LeetCode 图解 | 88. 合并两个有序数组
题目来源于 LeetCode 上第 88 号问题:合并两个有序数组。题目难度为 Easy。
五分钟学算法
2020/05/19
7780
LeetCode 图解 | 88.  合并两个有序数组
Leetcode No.88 合并两个有序数组
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
week
2021/05/06
2030
推荐阅读
相关推荐
画解算法:88. 合并两个有序数组
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验