zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    HDU 4334
    HDU 1280
    HDU 1060
    HDU 4033
    大三角形分成4个面积相等的小三角形
    HDU 1087
    HDU 4313
    Sleep(0)及其使用场景
    Decorator(装饰、油漆工)对象结构型模式
    Debug Assertion Failed!
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/10372340.html
Copyright © 2011-2022 走看看