/**
* 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;
}
};
merge-intervals
最新推荐文章于 2024-07-03 18:45:00 发布