LeetCode之寻找两个有序数组的中位数——JavaScrip

2019-02-08  本文已影响0人  极奏

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。
请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。
你可以假设 nums1 和 nums2 不会同时为空。

示例1:

nums1 = [1, 3]
nums2 = [2]
则中位数是 2.0

示例2:

nums1 = [1, 2]
nums2 = [3, 4]
则中位数是 (2 + 3)/2 = 2.5

解题思路:

题目有要求时间复杂度,不知道js的sort性能怎么样,先提交试一下

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number}
 */
var findMedianSortedArrays = function (nums1, nums2) {
    var number = nums1.concat(nums2);
    number.sort(function (a, b) { return a - b });
    return number.length % 2 === 0 ? (number[number.length / 2] + number[(number.length / 2) - 1]) / 2 : number[Math.floor(number.length / 2)];
};

居然通过。
其实是按理来说是无法通过的,因为sort函数到不了O(log(m + n))的级别。

下面来了解一下js中sort函数的性能

上一篇 下一篇

猜你喜欢

热点阅读