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]
.
answer:
class Solution {public: vector<Interval> merge(vector<Interval>& intervals) { sort(intervals.begin(),intervals.end(),mySort); vector<Interval> result; if(intervals.size() == 0) return result; int interStart = intervals[0].start, interEnd = intervals[0].end; result.push_back(intervals[0]); for( int j = 1; j < intervals.size(); j ++){ if(intervals[j].start <= result.back().end){ result.back().end = max(result.back().end,intervals[j].end); } else{ result.push_back(intervals[j]); } } return result; } static bool mySort(Interval a, Interval b){ // if((a).start < (b).start) return true; // else if((a).start == (b).start){ // return (a).end <= (b).end; // } // else return false; return a.start < b.start; }};
新闻热点
疑难解答