题解 | 【模板】前缀和
【模板】前缀和
https://www.nowcoder.com/practice/acead2f4c28c401889915da98ecdc6bf
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
// while (in.hasNextInt()) { // 注意 while 处理多个 case
// int a = in.nextInt();
// int b = in.nextInt();
// System.out.println(a + b);
// }
int n=scan.nextInt();//数组长度
int q=scan.nextInt();//询问次数
int[] arr=new int[n+1];//创建数组
arr[0]=0;
for(int i=1;i<n+1;i++){
arr[i]=scan.nextInt();
}
int[][] ret=new int[q][2];
for(int i=0;i<q;i++){
ret[i][0]=scan.nextInt();
ret[i][1]=scan.nextInt();
}
long[] dp=new long[n+1];//将前缀合数组设置成Long,防止溢出
dp[0]=0;
// 创建 前缀和数组,有效下标从1开始
for(int i=1;i<n+1;i++){
dp[i]=dp[i-1]+arr[i];
}
for(int i=0;i<q;i++){
int l=ret[i][0];
int r=ret[i][1];
long tmp = dp[r] - dp[l-1];
System.out.println(tmp);
}
}
}

SHEIN希音公司福利 363人发布