题解 | #【模板】前缀和#

【模板】前缀和

http://www.nowcoder.com/practice/acead2f4c28c401889915da98ecdc6bf


// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            int q = in.nextInt();
            int[] arr = new int[n];
            for (int i = 0; i < n; i++) {
                arr[i] = in.nextInt();
            }
            long[] dp = genDp(arr);
            for (int i = 0; i < q; i++) {
                int l = in.nextInt();
                int r = in.nextInt();
                long sum = l < 2 ? dp[r - 1] : dp[r - 1] - dp[l - 2];
                System.out.println(sum);
            }
            
        }
    }
    
    public static long[] genDp(int[] arr) {
        if (arr == null || arr.length < 1) {
            return new long[0];
        }
        int n = arr.length;
        long[] dp = new long[n];
        // dp[0]
        dp[0] = arr[0];
        for (int i = 1; i < n; i++) {
            dp[i] = dp[i - 1] + arr[i];
        }
        return dp;
    }
}
全部评论

相关推荐

mama3925:建议专业技能里测试移到最上面,加粗。然后适当加入些自动化测试工具。第二个项目,第三条亮点最后错别字。然后佬如果对自己很自信的话,可以项目放前面,然后项目里可以编造点测试经历,写在写在项目亮点的前两行。最后可加个自我评价,放个博客或者仓库链接
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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