题解 | #【模板】前缀和#
【模板】前缀和
https://www.nowcoder.com/practice/acead2f4c28c401889915da98ecdc6bf
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
//Map<String,Long> map=new HashMap<String,Long>();
int n = in.nextInt();
int q = in.nextInt();
long num[]=new long[n+1];
// 注意 hasNext 和 hasNextLine 的区别
for(int i=1;i<=n;i++){
num[i]=in.nextInt();
}
//long[][] dp=new long[n+1][n+1];
// dp[0][0]=0;
//for(int i=1;i<=n;i++){
//dp[i][i]=num[i];
//map.put(i+""+i,num[i]);
//for(int j=i+1;j<=n;j++){
//dp[i][j]=num[j]+dp[i][j-1];
//.put(i+""+j,num[j]+map.get(i+""+(j-1)));
//}
//}
long dp[]=new long[n+1];
dp[0]=0;
for(int i=1;i<=n;i++){
dp[i]=dp[i-1]+num[i];
}
for(int i=0;i<q;i++){
int a=in.nextInt();
int b=in.nextInt();
long sum=dp[b]-dp[a]+num[a];
System.out.println(sum);
}
}
}

查看5道真题和解析
