时间限制:1s内存限制:128M
题目描述
在另一个世界,今天是圣诞夜。高桥君的院子里种了 N 棵树,第i棵树高度为 hi。
他想选其中 K 棵树装饰成圣诞树,并且使得这 K 棵树中最高高度 hmax 和最低高度 hmin 之差越小越好。
给出所有数的高度,输出选择 K 棵树的时候,其中最高高度 hmax 和最低高度 hmin 之差的最小值。
【输入格式】
第 1 行,2 个正整数 N,K。
接下来 N 行,每行一个整数 hi。
【输出格式】
输出选择 K 棵树的时候,hmax−hmin 的最小值。
【输入输出样例#1】
输入#1
5 3 10 15 11 14 12
输出#1
2
【输入输出样例#2】
输入#2
5 3 5 7 5 7 7
输出#2
0
解法:
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int a[100010];
int b[100010];
int main()
{
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1);
int minn=2e9;
for(int i=1;i<=n-k+1;i++)
{
int cha=a[k+i-1]-a[i];//取差
minn=min(minn,cha); //找最小值
}
cout<<minn<<endl;
return 0;
}
没登陆的:
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int a[100010];
int b[100010];
int main()
{
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1);
int minn=2e9;
for(int i=1;i<=n-k+1;i++)
{
int cha=a[k+i-1]-a[i];//取差
minn=min(minn,cha); //找最小值
}
cout<<minn<<endl;
return 0;
}