主要是使用到了归并思想 虽然写的是困难 但是并不是很难
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int p1=0,p2=0;
int sp1=nums1.size();
int sp2=nums2.size();
int n=sp1+sp2;
vector<int>ans(n,0);
//首先是使用归并排序的思想 排列成升序数组
for(int i=0;i<n;i++)
{
if(p1>=sp1) {
ans[i]=nums2[p2];
p2++;
}
else if(p2>=sp2){
ans[i]=nums1[p1];
p1++;
}
else if(nums1[p1]<nums2[p2]){
ans[i]=nums1[p1];
p1++;
}
else{
ans[i]=nums2[p2];
p2++;
}
//归并
}
double res;
//根据数列长度 来找到中值的索引
if(n%2==0)
{
res=(double)(ans[n/2]+ans[n/2-1])/2;
}
else
{
res=(double)ans[n/2];
}
return res;
}
};