携程笔试第二题

昨晚的笔试,第二题只过了40%,看了其他人好像是注释中的写法,问问这两种有什么区别呢,我试了好久结果都一样
public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int n = in.nextInt();
        int m = in.nextInt();
        int k = in.nextInt();
        int[] arr = new int[n];
        for(int i = 0; i < n; i++){
            arr[i] = in.nextInt();
        }
        Arrays.sort(arr);
        int count = 0;
        for(int i = 0; i < n; i++){
            for(int j = 1; j < m; j++){
if(i + j >= n || arr[i + j] > arr[i] + k){
                    count++;
                    break;
                }
            }
        }
        /*int count = n;
        for(int i = 0; i < n; i++){
            int next = i + m - 1;
if(next >= n) break;
            if(arr[next] - arr[i] <= k){
                count--;
            }
        }*/
        System.out.println(count);
全部评论
区别就是没注释的会超时
点赞 回复 分享
发布于 2024-09-20 10:16 上海

相关推荐

在做核酸的杰尼龟很想去广西嗦粉:bro这个简历看着不错啊,这都找不到吗?
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客企业服务