题意
求两个有序数组的中位数。
题解
way 1.
合并两个数组,然后排序,找中位数,
O(nlogn)
,当然这样效率不高。
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int m = nums1.size(), n = nums2.size();
vector<int> num(m + n);
for(int i = 0; i < nums1.size(); ++i) num[i] = nums1[i];
for(int i = 0; i < nums2.size(); ++i) num[i + m] = nums2[i];
sort(num.begin(), num.end());
double ans = 0;
if((m + n) % 2) ans = num[(m + n) >> 1];
else ans = (num[(m + n) >> 1] + num[(m + n) / 2 - 1]) / 2.0;
return ans;
}
};