题解 | 【模板】静态区间和(前缀和)
【模板】静态区间和(前缀和)
https://www.nowcoder.com/practice/ac79a1a4a66646cc87525d6faa86e021
这题直接使用for循环累加会超时
我们应当使用前缀和数组来做
当输入数据的时候,我们就可以把数组预处理好
这里的sum数组长度应当为n+1,因为要保留sum[0]为前0个元素,也就是0
最后输出sum[r]-sum[l-1]即可
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int q=scanner.nextInt();
long a[]=new long[n];
long sum[]=new long[n+1];
for (int i = 0; i < a.length; i++) {
a[i]=scanner.nextLong();
sum[i+1]=sum[i]+a[i];
}
while(q-->0) {
int l=scanner.nextInt();
int r=scanner.nextInt();
System.out.println(sum[r]-sum[l-1]);
}
}
}

