前端算法-合并两个有序数组

简介: 前端算法-合并两个有序数组

题目


给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。


请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列


注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。

输入:nums1 = [0], m = 0, nums2 = [1], n = 1
输出:[1]
解释:需要合并的数组是 [] 和 [1] 。
合并结果是 [1] 。
注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。


题解


进入函数后先使用if语句判断出参n是否是0,如果是0则直接将出参nums1直接返回出去的,因为我们所要做的操作是将出参nums2合并到出参nums1中,出参n代表着出参nums2的数据长度,如果出参nums2中没有数据则没有合并的必要了,然后使用for循环将当前出参nums1使用pop方法删除末尾出参n位数,然后在使用for循环结合push方法,将出参nums2中对应出参n个数添加到出参nums1中,最后在使用sort方法对出参nums1进行排序,将排序后的出参nums1数组返回出去

/**
 * @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) {
    if(n === 0){
     return nums1
    }
    for(i = 0; i < n; i++) {
        nums1.pop()
    }
    for(j = 0; j < n; j++) {
        nums1.push(nums2[j])
    }
    return nums1.sort((a,b) => a - b)
};

我们还可以采用另一种方法实现,我们先使用for循环将出参nums2中的数通过splice方法依次插入到出参nums1末尾中,最后在用使用sort方法对出参nums1进行排序,最后将排序好的出参nums1返回出去即可

var merge = function(nums1, m, nums2, n) {
  for(let i = 0; i <= n - 1; i++) {
    nums1.splice(nums1.length - 1 - i, 1, nums2[i]);
  }
 return nums1.sort((a, b) => a - b);
};
相关文章
|
2月前
|
算法 前端开发 数据可视化
数据结构与算法在前端开发中的实际应用
本文将探讨数据结构与算法在前端开发中的实际应用,重点介绍在处理大规模数据、优化性能和提升用户体验方面的具体场景和解决方案。
|
15天前
|
算法 前端开发
前端算法 岛屿的最大面积 DFS(深度优先搜索)
前端算法 岛屿的最大面积 DFS(深度优先搜索)
11 0
|
3月前
|
算法
|
4月前
|
存储 算法 JavaScript
JS算法-输入有序数组
JS算法-输入有序数组
|
4月前
|
算法 前端开发
前端算法-路径总和
前端算法-路径总和
|
4月前
|
算法 前端开发
前端算法-平衡二叉树
前端算法-平衡二叉树
|
4月前
|
算法 前端开发
前端算法-将有序数组转换为二叉搜索树
前端算法-将有序数组转换为二叉搜索树
|
4月前
|
算法 前端开发
前端算法-对称二叉树
前端算法-对称二叉树
|
4月前
|
存储 算法 前端开发
前端算法- 二叉树的中序遍历
前端算法- 二叉树的中序遍历
|
11天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。