boxmoe_header_banner_img

Hello! 欢迎来到不如画七的空间!

加载中

文章导读

07.区间和


avatar
ensiezadi 2025年8月19日 50

#区间和

区间和

题目

给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。

输入描述

第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间,直至文件结束。

输出描述

输出每个指定区间内元素的总和。

==区间是一个左闭右闭区间==


思路

利用前缀和的思想,将中间结果存储到临时数组中。

  • 输入数组时,同时构建前缀和数组(前缀和的构建区间:[0,i]);
  • [a,b]最后输出的实际上需要减去的是前一个闭区间:[a,b] = [0,b] – [0, a – 1]。

具体代码

Java

import java.util.*;

class Main {
    public static void main(String[] a) {
        Scanner scan = new Scanner(System.in);
        int len = scan.nextInt();
        int[] array = new int[len];
        int[] sum = new int[len + 1];
        for (int i = 0; i < len; i++) {
            array[i] = scan.nextInt();
            sum[i + 1] = array[i] + sum[i];
        }
        // 区间是左闭右闭
        while (scan.hasNextInt()) {
            int start = scan.nextInt();
            int end = scan.nextInt();
            System.out.println(sum[end + 1] - sum[start]);
        }
        scan.close();
    }
}


评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码
不如画七
2025 年 10 月
 123456
78910111213
14151617181920
21222324252627
282930