算法 数学区间求并集
来源:互联网 发布:android滑动解锁源码 编辑:程序博客网 时间:2024/06/07 04:43
例如:有区间[3,7],[11,12],[14,16],[17,19],[21,24],[1,2],[4,8],[5,6],[9,10],[13,15],[18,22],[20,23]
将区间放入List<Long> list中:
list.add(3);
list.add(7);
list.add(11);
......
list中数据格式如下3,7,11,12,14,16,17,19,21,24,1,2,4,8,5,6,9,10,13,15,18,22,20,23
然后直接调用函数
GetCombinedSets(list,0);
将区间放入List<Long> list中:
list.add(3);
list.add(7);
list.add(11);
......
list中数据格式如下3,7,11,12,14,16,17,19,21,24,1,2,4,8,5,6,9,10,13,15,18,22,20,23
然后直接调用函数
GetCombinedSets(list,0);
list即为输出。
public void GetCombinedSets(List<Long> list,int index){int i=index;boolean isbreak=false;for(;i<list.size()-2;i+=2){if(isbreak){i-=2;break;}Long start =list.get(i); Long end =list.get(i+1);for(int j=i+2;j<list.size();j+=2){Long nextstart=list.get(j); Long nextend=list.get(j+1);if(start>nextend || end<nextstart){continue;}// |dstart_____| or |dstart_____| // |cstart_____| or |cstart_________|if(start>nextstart){// |_____| // |_____| if(end>=nextend){list.set(i,nextstart);list.remove(j); list.remove(j);isbreak=true;break;}else{// |_____| // |_____________| list.set(i,nextstart); list.set(i+1,nextend);list.remove(j); list.remove(j);isbreak=true;break;}}else{// |_____________| // |_____|if(end>=nextend){list.remove(j); list.remove(j);isbreak=true;break;}else{// |________| // |_________| list.set(i+1,nextend);list.remove(j); list.remove(j);isbreak=true;break;}}}}if(i==list.size()-2){return;}GetCombinedSets(list,i);}
阅读全文
0 0
- 算法 数学区间求并集
- 【算法】求区间并集的长度
- 区间求并集c++实现
- 区间求交集算法
- 求区间并的个数
- poj 2074 poj2074 区间求并
- RMQ算法 快速求区间最大最小值
- RMQ算法求区间最值
- RMQ算法,求区间最值
- 【算法】求两个区间的重叠长度
- 算法 n1段区间 与 n2段区间求交集
- 不相交集的求并算法(按集合大小求并+按高度求并)
- LA 4818 Largest Empty Circle on a Segment 开区间求并集
- 数学算法:求多个数的最小公倍数
- hdoj1006 Tick and Tick(数学问题,解不等式,求并集)
- 求交集和并集的线性算法
- 求交集和并集的线性算法
- poj 3277 线段树求区间并1
- 深度学习反向传播
- shared_ptr线程安全性分析[转]
- Codeforces Round #428 (Div. 2)
- LeetCode 1. Two Sum
- c++入门教程(九)
- 算法 数学区间求并集
- C++/Python/Matlab执行效率分析
- java版poi+excel导入树形数据实例2
- 算法 n1段区间 与 n2段区间求交集
- 磁盘读写原理
- 慧荣PT项目见疑
- C# winform 中MessageBox用法大全(附效果图)
- python笔记
- Codeforces Round #386 (Div. 2) D. Green and Black Tea