题目:
给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。
思路:
对长度为n的数字序列进行排序,最小的差值一定是在某相邻两数的差值,故可以逐个比较相邻两数之间的差值的大小
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(){
int n;
while(cin>>n){
vector<int> v;
for(int i = 1; i <= n; i++){
int t;
cin>>t;
v.push_back(t);
}
sort(v.begin(), v.end());
int min = 10005;
for(int i= n-1; i > 0; i--){
if(min > (v[i] - v[i-1]))
min = v[i] - v[i-1];
}
cout<<min<<endl;
}
return 0;
}