0
点赞
收藏
分享

微信扫一扫

前缀和(Python实现)

代码:

n, m = map(int, input().split())
a = list(map(int, input().split()))
prefix = [0] * (n + 2)
for i in range(n):
    prefix[i + 1] = prefix[i] + a[i]  # 求前缀和
# print(prefix)
for i in range(m):
    l, r = map(int, input().split())
    print(prefix[r] - prefix[l - 1])  # 求部分和

总结:

最开始没把这道题放在眼里,也不知道要用前缀和算法去做。直接用切片索引出来,结果时间超限。

后来去网上查了资料才知道前缀和这种算法:

咱们的代码先初始化一个数组,然后遍历数组求前缀和,最后在索引,就可以很快地求出来其中一段的和

举报

相关推荐

0 条评论