给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
//中位数
double mid=0;
//n为数组1的大小
int n=nums1.size();
//m为数组2的大小
int m=nums2.size();
//新数组来合并两个数组
vector<int> nums3(n+m);
//遍历数组1,将值放入新数组中
for(int i=0;i<n;i++){
nums3[i]=nums1[i];
}
//遍历数组2,将值放入新数组中
for(int j=0;j<m;j++){
nums3[n+j]=nums2[j];
}
//对新数组进行排序
sort(nums3.begin(),nums3.end());
//如果新数组长度为奇数
if((n+m)%2!=0){
//中位数为长度/2
mid=nums3[(n+m)/2];
}
else{
//长度为偶数,中位数为中间两个的平均值
mid=(nums3[(n+m)/2]+nums3[(n+m)/2 -1])/2.0;
}
return mid;
}
};

被折叠的 条评论
为什么被折叠?



