C++实现:
class Solution {//数组+排序
public:
vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
intervals.push_back(newInterval);//将新区间添加到列表中
sort(intervals.begin(),intervals.end());//根据区间左端点值排序
vector<vector<int>> res{intervals[0]};//声明返回值,并初始化
for(int i=1;i<intervals.size();i++){
if(res.back()[1] >= intervals[i][0]){//比较res中最后一个区间的右端点大于等于intervals中第i个区间的左端点,有交集
res.back()[1] = max(intervals[i][1],res.back()[1]);//有交集的时候,res.back()的右端点取二值的较大值
}
else{//否则无交集,直接将第i个区间添加到返回变量中
res.push_back(intervals[i]);
}
}
return res;
}
};
本文介绍了一种使用C++实现的区间合并算法。通过将新区间添加到已存在的区间列表中,然后对整个列表进行排序,最后遍历列表并合并有交集的区间,从而得到一个不重复且连续的区间集合。
7849

被折叠的 条评论
为什么被折叠?



