算法之前缀和1

package com.zhang.reflection.面试.算法模版.前缀和;
import java.util.Scanner;
/**这道题比较简单,主要用于理解前缀和的应用
 *
 * 给定一个长度为n的数组a_1, a_2,....a_n
 * 接下来有q次查询, 每次查询有两个参数l, r.
 * 对于每个询问, 请输出a_l+a_{l+1}+....+a_r的和
 *
 * 输入:
 * 3 2(n q)
 * 1 2 4
 * 1 2
 * 2 3
 * 输出:
 * 3
 * 6
 */
public class 前缀和 {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int q=sc.nextInt();
        long[] nums=new long[n+1];
        for(int i=1;i<=n;i++){
            //输入时进行处理,记录到该位置的前n个数的和
            nums[i]=sc.nextLong()+nums[i-1];
        }
        for(int i=1;i<=q;i++){
            int l=sc.nextInt();
            int r=sc.nextInt();
            //r-(l-1)即为所求的结果
            System.out.println(nums[r]-nums[l-1]);
        }
    }
}
全部评论

相关推荐

09-16 16:47
门头沟学院 C++
点赞 评论 收藏
分享
皮格吉:不,有的厂子面试无手撕,可以试试。都是一边学一边面。哪有真正准备好的时候,别放弃
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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