合并区间
来源:互联网 发布:sql server 权限管理 编辑:程序博客网 时间:2024/05/29 16:27
题目:
给出若干闭合区间,合并所有重叠的部分。
样例
给出的区间列表 => 合并后的区间列表:
[ [ [1, 3], [1, 6], [2, 6], => [8, 10], [8, 10], [15, 18] [15, 18] ]]
先将区间按下限排序,再判断区间有没有重叠部分,如果有,更改区间上下限,然后将重叠部分删除。
具体代码:
/**
* Definition of Interval:
* classs Interval {
* int start, end;
* Interval(int start, int end) {
* this->start = start;
* this->end = end;
* }
*/
bool inorder(Interval c,Interval d){
return c.start<d.start;
}
class Solution {
public:
/**
* @param intervals: interval list.
* @return: A new interval list.
*/
vector<Interval> merge(vector<Interval> &intervals) {
// write your code here
sort(intervals.begin(),intervals.end(),inorder);
if(intervals.size()==0)return intervals;
else {for(int i=0;i<intervals.size()-1;i++){
for(int j=i+1;j<intervals.size();j++){
if(intervals[i].end>=intervals[j].start&&intervals[i].end<intervals[j].end){
intervals[i].end=intervals[j].end;
intervals.erase(intervals.begin()+j);
j=i;
}
else if(intervals[i].start<=intervals[j].start&&intervals[i].end>=intervals[j].end){
intervals.erase(intervals.begin()+j);
j=i;
}
}
}
return intervals;
}
}
};
感想:
通过此题,对sort函数有了进一步认识,可以自己构造比较函数。其次要注意在区间重叠的不同情况下的不同处理方法。
- 区间合并
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 区间合并
- 区间合并
- 区间合并
- 区间合并
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 合并区间
- 表达式求值 (递归实现)
- js中获取select标签中选中的值
- 微信小程序github源码大全下载
- linux内核进程调度系列之调度概述
- Android
- 合并区间
- HGraphBuilder方法分析一
- 洛谷Oj-逆序对-分治(归并排序)
- HttpClient与参数json
- Logcat打印调试信息
- const各种用法总结
- http 请求头信息解释
- 红色警戒2共和国之辉联机教程(兼容到win10)
- 搭建Zookeeper服务器集群