最小距离
算法题目
资源限制
时间限制:1.0s 内存限制:256.0MB
最小距离
问题描述
数轴上有n个数字,求最近的两个数,即min(abs(x-y))
输入格式
第一行包含一个整数n。
接下来一行,表示n整数。
输出格式
一个整数表示最小距离
样例输入
6
7 3 4 11 9 17
样例输出
1
样例说明
取3和4
数据规模和约定
n<=100000
所有整数<=10^7
算法代码
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 100010;
int num[N];//开辟一个数组
int n;//长度
int main()
{
cin>>n;
for(int i = 0;i<n;i++ )cin>>num[i];//
sort(num,num+n);
int res = 1e9;//返回值初始值为正无穷
for(int i = 1;i<n;i++) res = min(res,num[i]-num[i-1]);
cout<<res<<endl;
return 0;
}
算法的核心思路
贪心的思想
求最近的两个数,而不是相邻的两个数,所以可以先排序,然后求相邻的值即可