寻找两个有序数组中的中位数

题目:

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。

请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。

你可以假设 nums1 和 nums2 不会同时为空。

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

实现方式:将两个有序数组进行合并,然后重新排序,根据个数判断是奇数个就直接返回总长度/2对应索引的数,否则返回总长度/2之后向上取整和向下取整索引所对应的数据的和除以2.

 

 

https://leetcode-cn.com/problems/median-of-two-sorted-arrays/solution/xiang-xi-tong-su-de-si-lu-fen-xi-duo-jie-fa-by-w-2/

 

 

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

posted @ 2019-09-27 20:00  唐糖PJS  阅读(109)  评论(0编辑  收藏  举报