原题链接Median of Two Sorted Arrays
意思是给定两个有序序列,找到合并之后的中位数,要求复杂度O(log(m+n))。扩展方面,找到合并之后第K小的数,因为中位数也符合第K小范畴,所以直接按照后者解题即可
不考虑复杂度的情况下,首先想到的方法是一次从两个数组中选取较小的那个,直到选取第k个,此种方法复杂度在O(k),代码如下
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int lhs_idx = 0;
int rhs_idx = 0;
/* 奇数偶数时中位数计算方法不同 */
int total = nums1.size() + nums2.size();
if(total % 2 == 0)
{
return (findKth(nums1, nums2, total / 2) + f