Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Definition for an interval.
- * struct Interval {
- * int start;
- * int end;
- * Interval() : start(0), end(0) {}
- * Interval(int s, int e) : start(s), end(e) {}
- * };
- */
- class Solution {
- public:
- vector<Interval> merge(vector<Interval>& intervals) {
- vector<Interval> results;
- if (intervals.size() == 0) {
- return intervals;
- }
- sort(intervals.begin(), intervals.end(), [](Interval& a, Interval& b) {
- return tie(a.start, a.end) <= tie(b.start, b.end);
- });
- results.push_back(intervals[0]);
- auto prev = results[0];
- for(int i = 1; i< intervals.size(); ++i) {
- auto current = intervals[i];
- if (current.start <= prev.end) {
- results.pop_back();
- results.push_back(Interval(prev.start, max(prev.end, current.end)));
- }
- else {
- results.push_back(current);
- }
- prev = results[results.size() -1];
- }
- return results;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement