[LeetCode] Merge Intervals

来源:互联网 发布:软件开发风险 编辑:程序博客网 时间:2024/06/07 16:20

问题:

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].

分析:

不难的一道题,但需要注意C++中的comparator的用法。参见这里。

代码:

bool comp(const Interval &v1, const Interval &v2) { return v1.start < v2.start; }class Solution {public:vector<Interval> merge(vector<Interval> &intervals) {vector<Interval> result;if (intervals.empty())return result;std::sort(intervals.begin(), intervals.end(), comp);result.push_back(intervals[0]);for (int i = 1; i < intervals.size(); i ++) {if (intervals[i].start <= result.back().end) result.back().end = max(result.back().end, intervals[i].end);else result.push_back(intervals[i]);}return result;}};


0 0
原创粉丝点击