bool cmp(Interval a,Interval b) { return a.start<b.start; } class Solution { public: vector<Interval> merge(vector<Interval> &intervals) { vector<Interval>res; int resl=0; int len=intervals.size(); if(!len)return res; sort(intervals.begin(),intervals.end(),cmp); int l=-1,r=-1; for(int i=0;i<len;i++) { if(l==-1&&r==-1) { l=intervals[i].start,r=intervals[i].end; continue; } if(r>=intervals[i].start)r=max(r,intervals[i].end); else res.push_back(Interval(l,r)),l=intervals[i].start,r=intervals[i].end; } res.push_back(Interval(l,r)),l=r=-1; return res; } };