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;
    }
};