前缀和[Python]

前缀和

前缀和的概念

一个长度为n的数组a[1]a[n],前缀和sum[i]等于a[1]a[i]的和

sum[i]=a[1]+a[2]+a[3]…+a[i]

利用递推,可以在o[n]时间内求得所有前缀和

sum[i]=sum[i-1]+a[i]

预计算出前缀和,能利用它快速计算出数组中任意一个区间a[i]~a[j]的和:

a[i]+a[i+1]+…+a[j-1]+a[j]=sum[j]-sum[i]

模板

import sys
input=lambda:sys.stdin.readline().strip()
n=int(input())
a=list(map(int,input().split()))
p = [0]*(n+1)#第一个元素是0所以n+1的长度
#print(p)
for i in range(n):
    p[i + 1] = p[i] + a[i]
l,r=map(int,input().split())
print(p[r]-p[l-1])

你可能感兴趣的:(python,算法,开发语言)