携程笔试第二题

昨晚的笔试,第二题只过了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 上海

相关推荐

哥_留个offer先:跟他说,你这个最好用c#,微软就用c#Java不适合这个项目
点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 14:18
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

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