美团笔试 第二题

老哥们帮我看看为啥只过了77%
package test;
import java.util.*;
public class two {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int q = sc.nextInt();
        long[] a = new long[n];
        long count = 0;
        long sum = 0;
        long l;
        long r;
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextLong();
            sum += a[i];
            if (a[i] == 0) {
                count++;
            }
        }
        while (sc.hasNext()) {
             l = sc.nextLong();
             r = sc.nextLong();
            System.out.print(sum + l * count + " ");
            System.out.print(sum + r * count + " ");
            System.out.println();
        }
    }
}
全部评论
把nextLong改成int
1 回复 分享
发布于 2024-03-09 12:31 北京
超时
点赞 回复 分享
发布于 2024-03-09 12:26 上海
可能的原因
点赞 回复 分享
发布于 2024-03-09 12:27 上海
我也卡在这好久,就是long[] a = new long[n];这个的问题,直接用常量接输入的值就行,用数组就爆
点赞 回复 分享
发布于 2024-03-09 12:27 山东
输出挺浪费时间的,改成一行输出
点赞 回复 分享
发布于 2024-03-09 12:30 湖南
不是所有0都能改的,超过q个的0不能改
点赞 回复 分享
发布于 2024-03-09 12:34 广东
q没有使用
点赞 回复 分享
发布于 2024-03-09 14:25 河南
把两个输出合在一起就过了,print耗时太大
点赞 回复 分享
发布于 2024-03-10 14:45 广东
话说while循环是不是应该把q--!=0作为终止判断条件
点赞 回复 分享
发布于 2024-03-10 16:04 湖南

相关推荐

评论
2
2
分享
牛客网
牛客企业服务