描述:
给出一组区间,请合并所有重叠的区间。
请保证合并后的区间按区间起点升序排列。
示例1
输入:
[[10,30],[20,60],[80,100],[150,180]]
返回值:
[[10,60],[80,100],[150,180]]
(题目来自牛客网)
用C++实现如下
class Solution {
public:
vector<Interval> merge(vector<Interval> &intervals) {
vector<Interval> res;
if(intervals.size() == 0)
return res;
sort(intervals.begin(), intervals.end(),comp); //使用sort函数进行排序
int start = intervals[0].start;
int end = intervals[0].end;
for(int i=1; i<intervals.size();i++)
{
Interval& a = intervals[i];
if(a.start > end) //下一个和上一个没有公共区域时
{
res.push_back(Interval(start,end)); //push进去上一个区间
start = a.start; //st