题目描述
小刚想买两根双节棍,左手一根右手一根。他到商店里,发现共有n(2≤n≤100)根双节棍,第i根的长度为Li(1≤Li≤10000)。
他希望买下的两根双节棍的长度差尽可能小,请你编程帮他找到两根最合适的双节棍,并输出最小的长度差值。
输入格式
第一行:一个整数n,表示商店里出售双节棍的数量。
第二行:n个正整数,用空格分开,第i个数li表示第i根双节棍的长度。
输出格式
一个整数,为两根双节棍的长度差的最小值。
样例输入
5 3 4 1 6 8
样例输出
1
解题思路:
我们只需要开一个二重循环并设置一个计数器(sum或cnt名字无所谓),因为有可能重复所以i应该为1~n-1而j应该为i+1~n,循环内部只需要此公式cnt=min(tnc,abs(a[i]-a[j])计算差值的最小值,最后输出计数器即可,不说了直接上代码。
#include <bits/stdc++.h>
using namespace std;
int a[1000010];
int main()
{
int n;
cin >> n;
int tnc=9999999;
for(int i=1;i<=n;i++)
{
cin >> a[i];
}
for(int i=1;i<=n-1;i++)
{
for(int j=i+1;j<=n;j++)
{
tnc=min(tnc,abs(a[i]-a[j]));
}
}
cout << tnc;
return 0;
}