在两个长度相等的排序数组中找到上中位数
Last updated
Last updated
问题简述
思路
相比 LeetCode 版,本题不需要处理奇数情况,同时在 i==0/N
时的判断更简单;
二分目标:找到最大的 i
,使 A[i - 1] <= B[j]
,其中 i + j == N
;
思路简述:将 A, B
分别分成如下两组,且保证 max(A_i-1, B_j-1) <= min(A_i, B_j)
,根据中位数性质,目标值即 max(A_i-1, B_j-1)
;
可证,上述条件等价于找到最大的 i
,使 A[i - 1] <= B[j]
(证明详见参考链接)