merge-intervals

来源:互联网 发布:昆明理工大学教育网络 编辑:程序博客网 时间:2024/06/16 01:18

题目:

Given a collection of intervals, merge all overlapping intervals.
For example,
Given[1,3],[2,6],[8,10],[15,18],
return[1,6],[8,10],[15,18].

程序:

class Solution {public:    vector<Interval> merge(vector<Interval> &intervals) {        if(intervals.size()<2)            return intervals;        sort(intervals.begin(),intervals.end(),cmp);        vector<Interval> res;        Interval temp=intervals[0];        for(int i=1;i<intervals.size();i++)        {            if(temp.end>=intervals[i].start)            {                if(temp.end<intervals[i].end)                    temp.end=intervals[i].end;            }            else            {                res.push_back(temp);                temp=intervals[i];            }        }        res.push_back(temp);        return res;    }    static bool cmp(Interval i1,Interval i2)//需要声明为静态函数    {        return i1.start<i2.start;    }};
原创粉丝点击