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;
}
};