157 求最大重叠区间大小
来源:互联网 发布:ntfs for mac如何用 编辑:程序博客网 时间:2024/05/19 18:44
57、求最大重叠区间大小
题目描述:请编写程序,找出下面“输入数据及格式”中所描述的输入数据文件中最大重叠
区间的大小。对一个正整数 n ,如果 n 在数据文件中某行的两个正整数(假设为 A 和 B)
之间,即 A<=n<=B 或 A>=n>=B ,则 n 属于该行;
如果 n 同时属于行 i 和 j ,则 i 和 j 有重叠区间;重叠区间的大小是同时属于行 i 和 j 的整
数个数。
例如,行(10 20)和(12 25)的重叠区间为 [12 20] ,其大小为 9,行(20 10)和( 20 30 )
的重叠区间大小为 1 。
/*57、求最大重叠区间大小题目描述:请编写程序,找出下面“输入数据及格式”中所描述的输入数据文件中最大重叠区间的大小。对一个正整数 n ,如果 n 在数据文件中某行的两个正整数(假设为 A 和 B)之间,即 A<=n<=B 或 A>=n>=B ,则 n 属于该行;如果 n 同时属于行 i 和 j ,则 i 和 j 有重叠区间;重叠区间的大小是同时属于行 i 和 j 的整数个数。 例如,行(10 20)和(12 25)的重叠区间为 [12 20] ,其大小为 9,行(20 10)和( 20 30 )的重叠区间大小为1 。是每2行的最大重叠区间,不是所有的 做法: 将输入的区间按起点从小到大排列,然后对每个区间判断从当前区间起点到目前的end的距离,此距离即为覆盖距离,当覆盖距离大于最大的距离时则更新最大距离。每次循环都要判断是否需要更新end,end表示目前所有区间的最大终点值。*/#include<iostream>#include<stdio.h>#include<algorithm>using namespace std;#define N 100struct node{int l,r;};node map[N];bool cmp(node a,node b){return a.l<b.l;}int maxCover(node map[],int n){int i,end,left,right,len,maxLen;sort(map,map+n,cmp);//排序 end=map[0].r;maxLen=-1;//保存最大长度 for(i=1;i<n;i++){left=map[i].l;//左 right=min(map[i].r,end);//右 if(left<=right)len=right-left+1;elselen=0;if(len>maxLen)maxLen=len;if(map[i].r>end)//更新end end=map[i].r;}return maxLen;}int main(){ int n,i,a,b;while(1){printf("请输入行数n(0结束)\n");scanf("%d",&n);if(n==0) break;for(i=0;i<n;i++){scanf("%d%d",&a,&b);if(a<b){map[i].l=a;map[i].r=b;}else{map[i].r=a;map[i].l=b;}}printf("%d\n",maxCover(map,n));} return 0;}/*212 2012 25220 1020 30220 1012 18310 1512 198 130*/
0 0
- 157 求最大重叠区间大小
- 求最大重叠区间大小
- 最大重叠区间大小
- 面试题精选(69):求最大重叠区间大小
- 重叠区间大小
- codeforce 754-D(求最大k个重叠区间)
- 求区间最大值---找出下面“输入数据及格式”中所描述的输入数据文件中最大重叠区间的大小
- 最大不重叠区间
- 最大区间重叠.
- 求重叠区间
- 【数字题3】最大重叠子区间
- 笔记——最大重叠区间数
- 【算法】求两个区间的重叠长度
- Spoj 2916 Can you answer these queries V 线段树 求任意重叠区间的最大子段和
- HDU 1867 KMP 求最大尾部重叠
- 每天一到算法题--重叠区间大小
- 区间重叠
- 11776 - Oh Your Royal Greediness!(最大重叠区间)
- Oracle Applications DBA 基础(一)
- activeMQ发布订阅模式中中常用工具类
- HTML中id、name、class 区别
- 安卓makefile全局变量建立流程分析
- 二叉树的基本操作(二)
- 157 求最大重叠区间大小
- string 转 html js textarea text 转div
- MFC打开文件
- 面向对象设计原则
- 0xC015000F:正被停用的激活上下文不是最近激活的
- mysql触发器学习
- 基于xmpp openfire smack开发之Android客户端开发[3]
- spring定时任务的两种方法
- activeMQ 特点、实战