letcode 4:Median of Two Sorted A
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
//先求两个数组的长度
int len1 = nums1.size();
int len2 = nums2.size();
int result[len1 + len2];
double r;
if ( len1 + len2 == 0)
r = 0.0;
else{
//循环两个有序数组,进行排序,给第三个数组
int count1 = 0, count2 = 0, count = 0;
//用&&不用考虑越界情况
while ( count1 < len1 && count2 < len2 ){
//如果nums1中的数较小,且nums1数组没有越界
if ( nums1[count1] < nums2[count2] ){
result[count] = nums1[count1]; //nums1中的数添加到结果数组
count1++; //并且nums1的计数器需要加1
}
else {
result[count] = nums2[count2]; //nums2中的数添加到结果数组
count2++; //并且nums2的计数器需要加1
}
count++;
}
//如果nums1还有剩余
if ( count1 < len1 ){
for (int i = count1; i < len1; i++){
result[count] = nums1[i];
count++;
}
}
else if ( count2 < len2 ){
for (int i = count2; i < len2; i++){
result[count] = nums2[i];
count++;
}
}
//得到结果数组,计算中位数
//如果有偶数个数
if ( ( len1 + len2 ) % 2 == 0 )
r = ( result[(len1 + len2 - 1 ) / 2] + result[(len1 + len2 - 1 ) / 2 + 1] ) / 2.0;
else
r = result[ (len1 + len2 - 1 ) / 2 ] / 1.0;
}
return r;
}
};
本文标题:letcode 4:Median of Two Sorted A
本文链接:https://www.haomeiwen.com/subject/pzpdmctx.html
网友评论