0
点赞
收藏
分享

微信扫一扫

15、吉比特2017秋招--最大差值

yongxinz 2022-09-28 阅读 143


时间限制:1秒

空间限制:32768K
给定一个未排序的数列,找到此数列在已排序状态下的两个相邻值的最大差值,少于两个值时返回0。例如:给定数列 [1,3,2,0,1,6,8] 则 最大差值为3。注意:请尽量使用时间复杂度为O(n)的方案。
输入描述:

第一行输入单个整数N作为数列的大小,第二行输入所有数列中的元素M,共N个。0 < N <= 1000000, 0 < M < 2100000000

输出描述:

数列的最大差值

输入例子1:

3
1 10 5

输出例子1:

5

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int m,max,i;
int a[1000000];
while(cin>>m)
{
for(i=0;i<m;i++)
cin>>a[i];

sort(a,a+m);

max=a[1]-a[0];
for(i=2;i<m;i++)
if(max>(a[i]-a[i-1]));
else max=(a[i]-a[i-1]);

cout<<max<<endl;




}


return 0;
}


举报

相关推荐

0 条评论