题解 | #【模板】前缀和#

【模板】前缀和

http://www.nowcoder.com/practice/acead2f4c28c401889915da98ecdc6bf

这题不难,主要注意几个坑点:

  • 用两个vector数组会内存不足
  • 给的样例运算后超出了int的范围,需要用long
using namespace std;

//时间复杂度:O(N)
//用vector老是内存超限,就用数组了
long num[100001]={0};
long sum[100001]={0};//sum[i]:第1个加到第i个的和

int main(){
    int n,q;
    cin>>n>>q;
    for(int i=0;i<n;i++)
        cin>>num[i];
    for(int i=1;i<=n;i++){
        sum[i]=num[i-1]+sum[i-1];
    }
    int l,r;
    for(int i=0;i<q;i++){
        cin>>l>>r;
        cout<<sum[r]-sum[l-1]<<endl;//相减即为num[l]到num[r]的累加值
    }
    
    return 0;
}
全部评论

相关推荐

找到实习就改名4月17日下午更改:1600一个月?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务