15天大厂真题带刷 - ZT18【模板】静态区间和 | Go

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

https://www.nowcoder.com/practice/ac79a1a4a66646cc87525d6faa86e021

题意

给出一个长度为n的数组和q次询问,每次询问求区间[l,r]的数组的元素和。

思路

数据范围n和q都是1e6,数组元素<=1e9,暴力的做法会超时,考虑用前缀和优化。在输入的时候维护sum数组,要注意用long long / int64 ,对于每次询问直接输出sum[r] - sum[l-1]即可。

C++代码

#include <iostream>
using namespace std;

const int maxn = 1e6+10;

int main() {
    long long n,q,l,r,x,sum[maxn];
    cin>>n>>q;
    for(int i=1;i<=n;i++){
        cin>>x;
        sum[i] = sum[i-1] + x;
    }
    while(q--){
        cin>>l>>r;
        cout<<sum[r] - sum[l-1]<<endl;
    }

}
// 64 位输出请用 printf("%lld")

Go代码

没过(有没有大佬能帮忙看下为啥

package main

import (
    "fmt"
)

func main() {
    var n,q int
    var x int64
    fmt.Scan(&n,&q)
    sum := make([]int64,n+1)
    for i := 1; i <= n; i ++ {
        fmt.Scan(&x)
        sum[i] = sum[i-1] + x
    } 
    for i := 1; i <= q; i ++ {
        var l,r int 
        fmt.Scan(&l,&r)
        fmt.Println(sum[r] - sum[l-1])
    }
}

#牛客创作赏金赛#
15天大厂真题带刷Go题解 文章被收录于专栏

15天大厂真题带刷Golang题解

全部评论

相关推荐

05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务