leetcode系列4、尋找兩個有序數組的中位數

4、尋找兩個有序數組的中位數

描述:

給定兩個大小爲 m 和 n 的有序數組 nums1 和 nums2。
請你找出這兩個有序數組的中位數,並且要求算法的時間複雜度爲 O(log(m + n))。
你可以假設 nums1 和 nums2 不會同時爲空。

example:

輸入:
nums1 = [1, 3]
nums2 = [2]
輸出:
則中位數是 2.0

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number}
 */
var findMedianSortedArrays = function(nums1, nums2) {
    let nums = nums1.concat(nums2).sort((a, b) => a - b);
    let length = nums.length;
    if (length % 2 == 0) {
        return (((nums[length / 2 - 1] + nums[length / 2]) / 2).toFixed(1));
    } else {
        return Number(nums[Math.floor(length / 2)].toFixed(1));
    }
};

1、直接將兩個數組進行合併並且進行排序

2、然後判斷長度,如果爲奇數那麼直接取中間位數即可, 如果爲偶數,那麼取中間兩位(由於下標從0開始,所以是length / 2 - 1)

尋找兩個有序數組的中位數 鏈接在這,需要更多題解的小夥伴可以查看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章