【LeetCode】56. Merge Intervals(C++)
阿新 • • 發佈:2018-12-01
地址:https://leetcode.com/problems/jump-game/
題目:
https://leetcode.com/problems/merge-intervals/
Example 1:
Example 2:
理解:
在有序的情況下,直接從頭到尾和並一次就可以了。
實現:
在排序的時候,end的大小其實是不重要的。
class Solution { public: vector<Interval> merge(vector<Interval>& intervals) { if (intervals.empty()) return{}; vector<Interval> res; sort(intervals.begin(), intervals.end(), [](const Interval &lhs, const Interval &rhs) {return lhs.start < rhs.start; }); res.push_back(intervals[0]); for (int i = 1; i < intervals.size(); ++i) { if (intervals[i].start <= res.back().end) res.back().end = max(res.back().end, intervals[i].end); else res.push_back(intervals[i]); } return res; } };