Merge Intervals 合并区间

来源:互联网 发布:质量数据分析管理办法 编辑:程序博客网 时间:2024/05/22 10:29

题目:

点击打开链接

解答:

按照start的大小对vector<Interval> intervals进行排序,排序之后根据end和start大小的比较 生成新的区间,记得循环结束后还要插入一个区间。

注意cmp函数的标准写法。!!!

cmp函数不能放在类里面。

代码:

 //比较函数的标准写法 //返回值  bool //参数 const Interval &a // const 型  引用 bool cmp(const Interval &a, const Interval &b) { return a.start < b.start; } class Solution { public: vector<Interval> merge(vector<Interval> &intervals) { int begin, end; vector<Interval> res; if (intervals.size() == 0) return res; //排序 sort(intervals.begin(), intervals.end(), cmp); begin = intervals[0].start; end = intervals[0].end;  for (int i = 1; i < intervals.size(); i++) { if (intervals[i].start > end) { Interval *temp = new Interval(begin, end); res.push_back(*temp); begin = intervals[i].start; end = intervals[i].end; } else { end = intervals[i].end > end ? intervals[i].end : end; } } Interval *temp = new Interval(begin, end); res.push_back(*temp); return res; } };


0 0
原创粉丝点击