58. 区间和 前缀和

58. 区间和(第九期模拟笔试)

前缀和

思路
前缀和的思想是重复利用计算过的子数组之和,从而降低区间查询需要累加计算的次数。
适用场景:前缀和在涉及计算区间和的问题时非常有用!
image

import java.util.Scanner;

public class Main {
    public static void main (String[] args) {
        Scanner scanner = new Scanner(System.in);

        int n = scanner.nextInt();
        int[] vec = new int[n];
        int[] p = new int[n];

        for(int i = 0; i < n; i++) {
            vec[i] = scanner.nextInt();
        }
        // 求前缀和数组 p
        p[0] = vec[0];
        for (int i = 1; i < n; i++) {
            p[i] = p[i - 1] + vec[i];
        }
        // 输出指定区间元素和
        while (scanner.hasNextInt()) {
            int a = scanner.nextInt();
            int b = scanner.nextInt();
            int sum = 0;
            if (a == 0) {
                 sum = p[b];
            } else {
                sum = p[b] - p[a - 1];
            }
            System.out.println(sum);
        }
        scanner.close();
     }
}

进阶
多维前缀和

posted @ 2025-10-13 17:12  Nickey103  阅读(7)  评论(0)    收藏  举报