4. 寻找两个正序数组的中位数

72 阅读1分钟

4. 寻找两个正序数组的中位数

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

var findMedianSortedArrays = function (nums1, nums2) {
    var nums = []
    while (nums1.length || nums2.length) {
        if (nums1.length && nums2.length) {
            if (nums1[0] > nums2[0]) {
                nums.push(nums2.shift())
            } else {
                nums.push(nums1.shift())
            }
        } else if (nums1.length) {
            nums.push(nums1.shift())
        } else {
            nums.push(nums2.shift())
        }
    }
    var len = nums.length
    var mid = len >> 1
    if (len % 2 === 0) {
        return nums[mid - 1] / 2 + nums[mid] / 2
    } else {
        return nums[mid]
    }
};