题解 | #【模板】前缀和#
【模板】前缀和
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); } } }