题目:
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;
}
};