南邮 OJ 1205 最大间隙问题
2015-08-05 10:57
323 查看
最大间隙问题
时间限制(普通/Java) : 4000 MS/ 12000 MS 运行内存限制 : 65536 KByte总提交 : 267 测试通过 : 79
比赛描述
最大间隙问题:给定n 个实数X1 , X2 ,Xn,求这n个数在实轴上相邻2个数之间的最大差值。假设对任何实数的下取整函数耗时O(1),设计解最大间隙问题的线性时间算法。
对于给定的n 个实数X1,X2,..., Xn,编程计算它们的最大间隙。
输入
输入数据的第1行有1个正整数n。接下来的1行中有n个实X1 ,X2 ,..., Xn
输出
输出最大间隙数
样例输入
5
2.3 3.1 7.5 1.5 6.3
样例输出
3.2
题目来源
算法设计与实验题解
#include<iostream>
#include<set>
using namespace std;
int main(){
int n;
set<double> sd;
set<double>::iterator it1,it2;
double d;
cin>>n;
while(n--){
cin>>d;
sd.insert(d);
}
d = 0;
for(it1=sd.begin(),it2=sd.begin(),++it2;it2!=sd.end();++it1,++it2){
if(*it2-*it1>d){
d = *it2-*it1;
}
}
cout<<d<<endl;
}