본문 바로가기
알고리즘/LeetCode

[Leetcode][자바스크립트][Easy] 88. Merge Sorted Array

by Benjamin_Choi 2022. 1. 6.
/**
 * 88_MergeSortedArray.js
 * Easy
 * https://leetcode.com/problems/merge-sorted-array/
 * @param {number[]} nums1
 * @param {number} m
 * @param {number[]} nums2
 * @param {number} n
 * @return {void} Do not return anything, modify nums1 in-place instead.
 */

// built-in 사용
var merge1 = function(nums1, m, nums2, n) {
    nums1.splice(m);
    nums1.push(...nums2);
    nums1.sort((a, b) => a - b);
    // console.log({nums1});
};

// 문제 의도 - Two pointer
var merge2 = function(nums1, m, nums2, n) {
    let idx1 = m - 1, idx2 = n - 1, idx3 = m + n - 1;
    while (idx2 >= 0) {
        if (nums1[idx1] >= nums2[idx2]) {
            nums1[idx3] =  nums1[idx1];
            idx3--;
            idx1--;
        } else {
            nums1[idx3] =  nums2[idx2];
            idx3--;
            idx2--;
        }
    }
    // console.log({nums1});
};

merge2([1,2,3,0,0,0], 3, [2,5,6], 3);

댓글