当前位置: 移动技术网 > IT编程>开发语言>C/C++ > Median of Two Sorted Arrays

Median of Two Sorted Arrays

2019年07月19日  | 移动技术网IT编程  | 我要评论

uucall网络电话,夜来香电影论坛,风云雄霸天下私服

median of two sorted arrays

there are two sorted arrays nums1 and nums2 of size m and n respectively.

find the median of the two sorted arrays. the overall run time complexity should be o(log (m+n)).

you may assume nums1 and nums2 cannot be both empty.

example 1:

nums1 = [1, 3]
nums2 = [2]

the median is 2.0

example 2:

nums1 = [1, 2]
nums2 = [3, 4]
the median is (2 + 3)/2 = 2.5

code:

//
//  main.cpp
//  中位数
//
//  created by mac on 2019/7/17.
//  copyright © 2019 mac. all rights reserved.
//

#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

class solution {
public:
    double findmediansortedarrays(vector<int>& nums1, vector<int>& nums2) {
        double midenum;
        if (nums1.size()>0 && nums2.size()>0) {
            for (int i=0; i<nums2.size(); ++i) {
                nums1.push_back(nums2[i]);
            }
            sort(nums1.begin(), nums1.end());
            if (nums1.size()%2==0) {
                midenum=(double)((double)(nums1[nums1.size()/2])+(double)(nums1[nums1.size()/2-1]))/2;
            }else{
                midenum=nums1[nums1.size()/2];
            }
            
        }else if (nums1.size()>0){
            if (nums1.size()%2==0) {
               midenum=((double)(nums1[nums1.size()/2])+(double)(nums1[nums1.size()/2-1]))/2;
            }else{
                midenum=nums1[nums1.size()/2];
            }
        }else{
            if (nums2.size()%2==0) {
                midenum=((double)(nums2[nums2.size()/2])+(double)(nums2[nums2.size()/2-1]))/2;
            }else{
                midenum=nums2[nums2.size()/2];
            }
        }
        return midenum;
    }
};

int main(int argc, const char * argv[]) {
    vector<int> a,b;
//    a.push_back(1);
//    a.push_back(2);
    b.push_back(2);
    b.push_back(3);
    solution so;
    cout<<so.findmediansortedarrays(a, b)<<endl;
    return 0;
}

运行结果

2.5
program ended with exit code: 0

参考文献

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网