1. 056

merge-intervals/


2. 算法O

  • O(nm)

http://www.cnblogs.com/grandyang/p/4370601.html


3. 代码


/**

* Definition for an interval.

* struct Interval {

* int start;

* int end;

* Interval() : start(0), end(0) {}

* Interval(int s, int e) : start(s), end(e) {}

* };

*/

class  Solution{

public:

    vector<Interval>  merge(vector<Interval>& intervals){

        vector<Interval>  res;

        if(intervals.empty())  return res;

        sort(intervals.begin(),intervals.end(),comp);

        res.push_back(intervals[0]);

        for(int i=1;i<intervals.size();++i){

            if(res.back().end>=intervals[i].start)

                res.back().end=max(res.back().end,intervals[i].end);

            else

                res.push_back(intervals[i]);

        }

        return res;

    }

private:

    static bool comp(const Interval& a,const Interval& b){

        return (a.start<b.start);

    }

};

results matching ""

    No results matching ""