给出一个无重叠的按照区间起始端点排序的区间列表。
在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)
样例
样例 1:
输入:
(2, 5) into [(1,2), (5,9)]
输出:
[(1,9)]
样例 2:
输入:
(3, 4) into [(1,2), (5,9)]
输出:
[(1,2), (3,4), (5,9)]
/**
* Definition of Interval:
* classs Interval {
* int start, end;
* Interval(int start, int end) {
* this->start = start;
* this->end = end;
* }
* }
*/
class Solution {
public:
/**
* @param intervals: Sorted interval list.
* @param newInterval: new interval.
* @return: A new interval list.
*/
static bool cmp(Interval&a,Interval&b)
{
return a.start<b.start;
}
vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) {
// write your code here
vector<Interval> res;
if(intervals.size()<=0)
{
res.push_back(newInterval);
return res;
}
intervals.push_back(newInterval);
sort(intervals.begin(),intervals.end(),cmp);
res.push_back(intervals[0]);
for (int i = 1; i < intervals.size(); i++) {
/* code */
if(intervals[i].start<=res.back().end)
res.back().end=intervals[i].end>res.back().end?intervals[i].end:res.back().end;
else res.push_back(intervals[i]);
}
return res;
}
};
来源:CSDN
作者:Sinb妃
链接:https://blog.csdn.net/weixin_43981315/article/details/104171006