寻找两个有序数组中的中位数
题目:
给定两个大小为 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.
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。