4. Median of Two Sorted Arrays(js)

给定两个大小为 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

 

There are two sorted arrays nums1 and nums2 of size m and n respectively.

Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).

You may assume nums1 and nums2 cannot be both empty.

Example 1:

nums1 = [1, 3]
nums2 = [2]

The median is 2.0

Example 2:

nums1 = [1, 2]
nums2 = [3, 4]

The median is (2 + 3)/2 = 2.5

代码如下:
var findMedianSortedArrays = function(nums1, nums2) {
       var len1=nums1.length;
    var len2=nums2.length;
    var i=0,j=0;
    var nums=[];
    var mid;
//     合并两数组
    while(i<len1 && j<len2){
        if(nums1[i]<nums2[j]){
            nums.push(nums1[i]);
            i++;
        }else{
            nums.push(nums2[j])
            j++;
        }
    }
    if(i==len1 && j!=len2){
        for(var k=j;k<len2;k++){
            nums.push(nums2[k])
        }
    }else if(i!=len1 && j==len2){
        for(var k=i;k<len1;k++){
            nums.push(nums1[k]);
        }
    }
//     取中值
    mid=Math.floor(nums.length/2);
    if(nums.length%2==1){
        return nums[mid]
    }else{
        return (nums[mid] +nums[mid-1])/2;
    }
};

 出处:https://leetcode-cn.com/problems/median-of-two-sorted-arrays/

   https://leetcode.com/problems/median-of-two-sorted-arrays/

posted @ 2019-02-13 23:12  mingL  阅读(112)  评论(0编辑  收藏  举报