LC4
给定两个大小分别为 m
和 n
的正序(从小到大)数组 nums1
和 nums2
。请你找出并返回这两个正序数组的 中位数 。
算法的时间复杂度应该为 O(log (m+n))
。
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int m = nums1.size(), n = nums2.size(), k = 0, i = 0, j = 0;//把重复使用的数据用一个变量代替
vector<int> sub(m + n, 0);
while (i < m && j < n)
sub[k++] = nums1[i] < nums2[j] ? nums1[i++] : nums2[j++];
while (i < m) sub[k++] = nums1[i++];
while (j < n) sub[k++] = nums2[j++];
return k % 2 ? sub[k / 2] : (sub[k / 2] + sub[k / 2 - 1]) / 2.0; // 判断奇偶
}
};//要会用a[i++]-->>a[i],i++;