因为区间是按照起始端点排序的,所以,首先将newInterval按照顺序插入到数组中,之后进行合并即可
std::vector<Interval> insert(std::vector<Interval>& intervals, Interval newInterval) {
std::vector<Interval> result;
if(intervals.size()==0){
result.push_back(newInterval);
return result;
}
int j=0;
for(;j<intervals.size();j++){
if(newInterval.start<=intervals[j].start){
intervals.insert(intervals.begin()+j,newInterval);
break;
}
}
if(j==intervals.size())
intervals.insert(intervals.begin()+j,newInterval);
int i=1;
Interval a=intervals[0];
while(i!=intervals.size()){
if(a.end<intervals[i].start) {
result.push_back(a);
a=intervals[i];
}else if(a.end>=intervals[i].start&&a.end<intervals[i].end){
a.end=intervals[i].end;
}
i++;
}
result.push_back(a);
return result;
}