leetcode5-合并区间

编程答案:

 //合并区间
struct Interval 
{
        int start;
        int end;
        Interval() : start(0), end(0) {}
        Interval(int s, int e) : start(s), end(e) {}
};
static bool cmp(Interval a, Interval b)
{
       return a.start < b.start;
}
vector<Interval> merge(vector<Interval>& intervals) 
{
    sort(intervals.begin(),intervals.end(),cmp);
    if (intervals.size()==1)
    {
        return intervals;
    }
    vector<Interval> res;
    int i = 0;
    while(i<intervals.size())
    {
        int start = intervals[i].start, end = intervals[i].end;
        int j = i+1;
        while(j < intervals.size() && intervals[j].start <= end)
        {
              if(end < intervals[j].end)
                    end = intervals[j].end;
               j++;
        }
        struct Interval merge = {start, end};
        res.push_back(merge);
        i = j;
    }
    return res;
}

猜你喜欢

转载自blog.csdn.net/hi_baymax/article/details/82025957