题解 | 空调遥控

空调遥控

https://www.nowcoder.com/practice/7cb58d56b30c4280ac07ae4428022e03

import java.util.Scanner;
import java.util.Arrays;

public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        final int N = 1000005;
        int n, p;
        n = in.nextInt();
        p = in.nextInt();
        int[] a = new int[N];
        int maxn = 0;
        for(int i=1;i<=n;i++) {
            a[i] = in.nextInt();
            maxn = Math.max(maxn, a[i]);
        }
        Arrays.sort(a, 1, n+1);
        int l = 1, r = n;
        for(;l <= r;){
            int mid = (l+r) >> 1;
            boolean flag = false;
            for(int i=1;i+mid-1<=n;i++){
                if(a[i+mid-1] - a[i] <= 2*p){
                    flag = true;
                }
            }
            if(flag == false) r = mid-1;
            else l = mid+1;
        }
        System.out.println(r);
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务