merge-intervals

来源:互联网 发布:mac棋牌游戏 编辑:程序博客网 时间:2024/05/12 07:31
/** * 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 comp(const Interval&a,const Interval&b){    if(a.start==b.start) return a.end<b.end;    return a.start<b.start;}class Solution {public:    vector<Interval> merge(vector<Interval>& in) {        if(in.size()==0) return in;        sort(in.begin(),in.end(),comp);        vector<Interval> res;        Interval temp(in[0].start,in[0].end);        int p_end=in[0].end;        for(int i=1;i<in.size();i++){            if(in[i].start>p_end){                temp.end=p_end;                res.push_back(temp);                temp.start=in[i].start;                p_end=in[i].end;            }            else{                p_end=max(in[i].end,p_end);            }        }        temp.end=p_end;        res.push_back(temp);        return  res;    }};

0 0
原创粉丝点击