Skip to content

Latest commit

 

History

History
53 lines (44 loc) · 1.33 KB

3.merge-sorted-array.md

File metadata and controls

53 lines (44 loc) · 1.33 KB

Merge Sorted Array

Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

Note:

The number of elements initialized in nums1 and nums2 are m and n respectively.

You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.

Example:

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

Output: [1,2,2,3,5,6]
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) {
    var firstIndex = 0;
    var secondIndex = 0;
    while (secondIndex !== n && firstIndex - secondIndex < m) {
        if (nums1[firstIndex] > nums2[secondIndex]) {
            for (let i = nums1.length - 1; i !== firstIndex; --i) {
                nums1[i] = nums1[i - 1];
            }
            nums1[firstIndex] = nums2[secondIndex];
            console.log(nums1);
            ++firstIndex;
            ++secondIndex;
        } else {
            ++firstIndex;
        }
    }

    if (secondIndex !== n) {
        for (secondIndex; secondIndex < n; ++secondIndex) {
            nums1[firstIndex++] = nums2[secondIndex];
        }
    }
};