解题思路
由于限定了复杂度,只能在一次循环中获取合并的序列,所以使用while循环,设定两个索引,将
较小值插入新的数组中,在通过简单的计算获取新数组的中位数。
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int num1,num2;
int index1=0;
int index2=0;
vector<int> v;
int m=nums1.size();
int n=nums2.size();
while(index1<m&&index2<n){
if(nums1[index1]<=nums2[index2]){
v.push_back(nums1[index1]);
index1++;
}else {
v.push_back(nums2[index2]);
index2++;
}
}
if(index1==m){
while(index2<n){
v.push_back(nums2[index2]);
index2++;
}
}else if(index2==n){
while(index1<m){
v.push_back(nums1[index1]);
index1++;
}
}
int length=v.size();
double mid=0;
if(length%2==0){
mid=(double)(v[length/2-1]+v[length/2])/2;
}else{
mid=v[(length+1)/2-1];
}
return mid;
}
};