刷题笔记

【leetcode刷题笔记】004.Median of Two

2018-09-11  本文已影响0人  常恒毅
日期:20180911
题目描述:

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.

Examples:
nums1 = [1, 3]
nums2 = [2]
The median is 2.0
详解:

这道题以为必须用到什么高端方法,不然肯定会超时,自己编了半天总调不通,最后干脆不调了,直接看了答案,发现很简单粗暴,也不会超时。

就不再过多的深究最完美的算法了,毕竟现在找工作紧迫,没有时间和每一道题死磕,先混个脸熟。

class Solution {
public:
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
        vector<double>v;
        int m=nums1.size(),n=nums2.size();
        double median=0;
        for(int i=0;i<m;i++)
            v.push_back(nums1[i]);
        for(int i=0;i<n;i++)
            v.push_back(nums2[i]);
        sort(v.begin(),v.end()); //用了c++自带的sort
        int avg=(n+m)/2;
        if((m+n)%2==0) median=(v[avg-1]+v[avg])/2;
        else  median=v[avg];
        return median;
    }
};

总结:

在比赛或笔试中,自己写的快排往往没有自带的sort快,更不用说冒泡啥的了。所以特地总结一下C++中的sort的使用方法:

上一篇下一篇

猜你喜欢

热点阅读