区间集的覆盖长度
2015-10-08 20:06
246 查看
arr={[2,6],[3,8]} ret=6
arr={[0,8],[10,12]} ret=10
arr={[2,3]} ret=1
arr={[0,8],[10,12]} ret=10
arr={[2,3]} ret=1
using namespace std; typedef struct { int begin; int end; }interval; bool cmp(const interval &a,const interval &b) { if(a.begin==b.begin) //左区间相等,则比较右区间 return a.end<b.end; return a.begin<b.begin; //比较左区间 } int foo(vector<interval> &arr) { if(arr.empty()) return -1; sort(arr.begin(),arr.end(),cmp); int sum=arr[0].end-arr[0].begin; int size=arr.size(); for(int i=1;i<size;++i){ if(arr[i-1].end>=arr[i].begin) //两区间有交集 sum+=arr[i].end-arr[i-1].end; else //两区间无交集 sum+=arr[i].end-arr[i].begin; } return sum; }
相关文章推荐
- 2015国庆总结
- [数据挖掘课程笔记]SLIQ算法
- 判断一棵二叉树是否平衡二叉树
- C++复习:位运算
- 高并发网站架构设计方案
- 【leetcode】79. Word Search
- Dialog中有EditText无法弹出输入法解决方法
- 数据结构实验之栈六:下一较大值(二)【OJ-3333】【自己写的封装的栈代码】
- 自居电路(升压电路)
- 关于AlertDialog的常见用法
- 海量数据处理分析
- 编辑并保存手机中的图片至本地
- Linux CP文件夹略过目录的解决
- leecode algo4: Median of Two Sorted Arrays (Java)
- 什么是Kivy???
- Windows Azure Virtual Machine (26) 使用高级存储和DS系列VM
- 在service中播放音乐
- [BNU弱校联萌]背水一战
- C++_中的不可变类
- MyBatis与Hibernate对比