/** * 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> result; if(intervals.empty()) { return result; } sort(intervals.begin(), intervals.end(), [](Interval i1, Interval i2) { return i1.start < i2.start; }); Interval curr(intervals[0]); for(int i = 1; i < intervals.size(); ++i) { if(intervals[i].start <= curr.end) { if(intervals[i].end > curr.end) { curr.end = intervals[i].end; } } else { result.emplace_back(curr); curr = intervals[i]; } } result.emplace_back(curr); return result; } };
4/15/2014
Leetcode -- Merge Intervals
We have to sort the vector by the start value first.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment