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 Arrays
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- There are two sorted arrays nums1 and nums2 of size m and...
- 在两个有序数组中寻找中位数,思想时归并排序的思想,将两个数组归并排序到一个数组中,提前算出中位数的个数减少循环次数
- 参考:https://hk029.gitbooks.io/leetbook/content/%E5%88%86%E...
- There are two sorted arrays nums1 and nums2 of size m...
- Question Description My Code Test Result Solution Put num...