Merge Intervals

来源:互联网 发布:淘宝图片尺寸 编辑:程序博客网 时间:2024/09/21 08:19
/** * Definition for an interval. * struct Interval { *     int start; *     int end; *     Interval() : start(0), end(0) {} *     Interval(int s, int e) : start(s), end(e) {} * }; */ bool cmp(const Interval &x,const Interval &y){    if(x.start==y.start){            return x.end<y.end;    }else return x.start<y.start;        }class Solution {public:    vector<Interval> merge(vector<Interval> &intervals) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        vector<Interval> vec;        int len=intervals.size();        if(len<=1)return intervals;                sort(intervals.begin(),intervals.end(),cmp);                Interval tmp=intervals[0];        int start=tmp.start,end=tmp.end;        for(int i=0;i<len;++i){            tmp=intervals[i];            if(tmp.start<=end){                end=max(end,tmp.end);            }else{                Interval it(start,end);                vec.push_back(it);                start=tmp.start;                end=tmp.end;            }        }        Interval it(start,end);        vec.push_back(it);        return vec;    }};

原创粉丝点击