题解 | 【模板】静态区间和(前缀和)

【模板】静态区间和(前缀和)

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]);
		}

	}

}

全部评论

相关推荐

林后润:听说他们有kpi,要到了简历编号就不理人了
27届求职交流
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务