4-findMedianSortedArrays.js 1.03 KB
/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number}
 */
var findMedianSortedArrays = function(nums1, nums2) {
    function merge(nums1, nums2) {
        let nums = [];
        while (nums1.length || nums2.length) {
            if (nums1.length === 0) {
                return nums.concat(nums2);
            }
            if (nums2.length === 0) {
                return nums.concat(nums1);
            }

            if (nums1[0] < nums2[0]) {
                nums.push(nums1.shift());
            } else {
                nums.push(nums2.shift());
            }
        }
        return nums;
    }
    let nums = merge(nums1, nums2);

    // let nums = [...nums1, ...nums2];
    // nums.sort((a,b)=>a-b);
    // console.info(nums1, nums2, '=>', nums)
    let len = nums.length; 
    if (len % 2 === 0) {
        return (nums[len/2-1] + nums[(len/2)]) / 2;
    } else {
        return nums[~~(len/2)];
    }
};

var nums1 = [];
var nums2 = [9,
28,
245,
307,
461,
561,
680,
683];
console.info(findMedianSortedArrays(nums1, nums2));