56. Merge Intervals

来源:互联网 发布:盒子设计软件绿色版 编辑:程序博客网 时间:2024/05/18 16:19

不知道为什么是hard,挺简单的,就注意一下【】的情况。

按start排序然后整合ok!

/** * 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:    static bool cmp(const Interval &a, const Interval &b){        return a.start < b.start;        }    vector<Interval> merge(vector<Interval>& intervals) {        sort(intervals.begin(), intervals.end(), cmp);        //return intervals;        vector<Interval>me;        Interval now;        if(intervals.size() != 0)            now = intervals[0];        for(int i = 1; i < intervals.size(); ++ i){            if(now.end >= intervals[i].start){                now.end = max(now.end, intervals[i].end);            }            else{                me.push_back(now);                now = intervals[i];            }        }        if(intervals.size() != 0)            me.push_back(now);        return me;    }};
0 0
原创粉丝点击