leetcode-排序-88-合并两个有序数组

88. 合并两个有序数组

描述

  • 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
  • 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。
  • 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。

示例 1

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

输出: [1,2,2,3,5,6]

解法 1

/**
 * @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 length = m + n
    while(n > 0) {
        if(m <= 0) {
            nums1[--length] = nums2[--n]
            continue
        }
        nums1[--length] = nums1[m-1] >= nums2[n-1] ? nums1[--m]: nums2[--n]
    }
};

复杂度分析 1

  • 时间复杂度:O(m+n)
  • 空间复杂度:O(1)

   转载规则


《leetcode-排序-88-合并两个有序数组》 朝飞 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
leetcode-排序-278-第一个错误的版本 leetcode-排序-278-第一个错误的版本
278. 第一个错误的版本题目描述(难度:简单) 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版
2020-05-27
下一篇 
leetcode-数组-1185-一周中的第几天 leetcode-数组-1185-一周中的第几天
1185. 一周中的第几天题目描述(难度:简单) 给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。 输入为三个整数:day、month 和 year,分别表示日、月、年。 您返回的结果必须是这几个值中的一个 {“Sunday”
2020-05-25
  目录