细节题,代码如下:
vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) {
vector<Interval> result;
for(int i = 0; i < intervals.size(); ++i){
if(intervals[i].end < newInterval.start){
result.push_back(intervals[i]);
}
else if(intervals[i].start > newInterval.end){
if(result.empty() || newInterval.start > (*prev(result.end())).end)
result.push_back(newInterval);
result.push_back(intervals[i]);
}
else{
newInterval.start = min(newInterval.start, intervals[i].start);
newInterval.end = max(newInterval.end, intervals[i].end);
}
}
if(result.empty() || newInterval.start > (*prev(result.end())).end)
result.push_back(newInterval);
return result;
}