试题 算法训练 最小距离
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
最小距离
问题描述
数轴上有n个数字,求最近的两个数,即min(abs(x-y))
输入格式
第一行包含一个整数n。
接下来一行,表示n整数。
输出格式
一个整数表示最小距离
样例输入
6
7 3 4 11 9 17
样例输出
1
样例说明
取3和4
数据规模和约定
n<=100000
所有整数<=10^7
#include<stdio.h>
#define min(x,y) (x<y?x:y)
#define X 10000001
int n,a[X],min_ac=X;
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
int b;
scanf("%d",&b);
a[b]=1;
}
int c=0;
for(int i=0;i<X-1;i++){
if(a[i]==1&&c!=0){
min_ac=min(min_ac,i-c);
c=i;
}
if(a[i]==1&&c==0) c=i;
}
printf("%d",min_ac);
return 0;
}