问题标题: 酷町堂:4369 布展(diff)

0
0
已解决
徐子宸
徐子宸
中级天翼
中级天翼

4369   布展(diff)经验值:800

不许抄袭,一旦发现,直接清空经验!

题目描述 Description

有N颗大小不一的钻石,现在需要布展,为了视觉效果,你可以去掉其中最多K颗钻石,使得展台上的最大的钻石与最小的钻石差值最小。求解这个最小值。

输入描述 Input Description

第一行两个整数N和K。
接下来N个整数Ai,表示钻石的大小。

输出描述 Output Description

一个整数,意义如题所述。

样例输入 Sample Input

3 1 1 2 4

样例输出 Sample Output

1

数据范围及提示 Data Size & Hint

数据范围
1<=N<=100000
1<=Ai<=100000
0<=K<N


0
已采纳
周琪岳
周琪岳
初级守护
初级守护

1.排序

2.滑动窗口进行枚举

外层循环枚举区间长度

    内层循环枚举左右端点

3.AC愉快

0
朱优扬
朱优扬
中级天翼
中级天翼

核心思路:

    for(int i=1;i<=n;i++){
        输入a[i];
    }
    快排(a+1,a+1+n);//#include <algorithm>
    定义 l=1,r=n-k;
    循环(r<=n){
        ans=min(ans,a[r]-a[l]);
        l加一;
        r加一;
    }
    输出ans;

我要回答