二分法:leetcode 4 两个有序数组合并之后的中位数
本文讲解了合并两个有序数组算得中位数的最优算法以及背后的二分法思想。
给定两个大小分别为 \(m\) 和 \(n\) 的正序(从小到大)数组 nums1
和 nums2
。请你找出并返回这两个正序数组的中位数。 算法的时间复杂度应该为 \(O(\log (m+n))\) 。
示例1:
1输入:nums1 = [1,3], nums2 = [2]
2输出:2.00000
3解释:合并数组 = [1,2,3] ,中位数 2
示例2:
1输入:nums1 = [1,2], nums2 = [3,4]
2输出:2.50000
3解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5