【数学】【排序】用最少的点,访问数组中的所有区间
来源:互联网 发布:公共网络怎么改成家庭 编辑:程序博客网 时间:2024/05/20 19:31
题目:EPI 13.12
我的代码与书上的代码略有不同,是从题目13.11中得到的启发。方法是先把数组A排序,然后用一个变量cur记录当前已经遍历的区间的交集,cur初始化为A[0],从A[1]开始遍历数组,若当前遍历到的元素A[i] 与 cur有交集,则更新cur;若没有交集,则从cur中选一个点填入返回值res,然后cur=A[i]。
typedef int TimeType;class Interval{public:TimeType left,right;Interval(const TimeType &a,const TimeType &b):left(a),right(b){}const bool operator<(const Interval &a)const{if(left!=a.left)return left<a.left;else return right<a.right;}};vector<TimeType> covering(vector<Interval> A){vector<TimeType> res;if(A.empty())return res;sort(A.begin(),A.end());Interval cur=A[0];//记录当前区间的交集for(int i=1;i<A.size();i++){//肯定有cur<=A[i]if(A[i].left<=cur.right)//有交集{//缩小cur范围int r=min(cur.right,A[i].right);cur.left=A[i].left;cur.right=r;}else{res.push_back(cur.right);cur=A[i];}}res.push_back(cur.right);return res;}
0 0
- 【数学】【排序】用最少的点,访问数组中的所有区间
- 用最少圆覆盖所有点问题
- 最少砝码问题(用一部分数的和/差表示区间上所有的整数)
- 用最少的代码做到数组去重、排序
- 趣题:用最少的点挡住所有可能的反射路径
- 趣题:用最少的点挡住所有可能的反射路径
- 区间完全覆盖问题 &&区间均取最少2个点的问题
- 将数组划分最少数目的排序子序列
- 用最少的并行交换完成排序
- poj 1236 Network of Schools 【SCC + 缩点】【最少连接几个点可以直接或间接连接所有点 + 增加最少的边使图强连通】
- 最少区间
- [面试题]用最少的比较次数找出一个数组中的最大值和次大值
- 求能覆盖到所有点的最少集合情况(超时题,须优化)
- 区间上的点到点的hash(即判断区间中的点,位于第几区间)(更新待续中...)
- 求数组中区间中最小数*区间所有数和的最大值
- 求数组中区间中最小数*区间所有数和的最大值
- 获取model中的所有属性的名字用数组返回
- 有一段文本,将文本中的所有单词,存放到一个字符串数组中。(要求占用内存最少)
- php设计模式之工厂模式
- Hadoop中的DBInputFormat
- ASP.NET MVC4 & Entity Framework 6.0 IIS 部署出错解决方案
- linux
- 收集的一些较冷但却很有用的jquery
- 【数学】【排序】用最少的点,访问数组中的所有区间
- WMI获取远程服务器CPU,内存使用率函数详解
- Laravel 4 使用技巧之 - 安装技巧
- Http url特殊字符转义
- 完美解决Android中AVD模拟器启动慢(卡在Android启动界面)等问题
- oracle数据库 plsql客户端 乱码
- 二维数组中查找
- 为开发者准备的9个实用PHP代码片段
- 粒子波浪和颤动效果!