细节题,代码如下:
bool comp(const Interval &a, const Interval &b){
if(a.start == b.start)
return a.end < b.end;
return a.start < b.start;
}
class Solution {
public:
vector<Interval> merge(vector<Interval> &intervals) {
sort(intervals.begin(), intervals.end(), comp);
vector<Interval> result;
if(intervals.empty())
return result;
Interval tmp = intervals[0];
for(int j = 1; j < intervals.size(); ++j){
if(intervals[j].start > tmp.end){
result.push_back(tmp);
tmp = intervals[j];
continue;
}
tmp.end = max(tmp.end, intervals[j].end);
}
result.push_back(tmp);
return result;
}
};