前缀和(Prefix Sum)是一个常用的编程技巧,用于计算一个数组中任意区间的元素和。它通过预先计算出每个位置之前的所有元素的和,然后可以在O(1)的时间复杂度内计算出任意区间的元素和。

以下是一个用Python实现的前缀和的例子:

def prefix_sum(arr):
    n = len(arr)
    prefix = [0] * (n + 1)  # 创建一个长度为n+1的数组用于存储前缀和
    for i in range(1, n + 1):
        prefix[i] = prefix[i - 1] + arr[i - 1]  # 计算前缀和
    return prefix

arr = [1, 2, 3, 4, 5]
prefix = prefix_sum(arr)
print(prefix)  # 输出:[0, 1, 3, 6, 10, 15]

# 计算任意区间的元素和
left = 1
right = 4
interval_sum = prefix[right + 1] - prefix[left]  # 区间和等于右边界的前缀和减去左边界的前缀和
print(interval_sum)  # 输出:9

在这个例子中,我们首先定义了一个prefix_sum函数,该函数接受一个数组作为参数,并返回一个存储了前缀和的数组。然后我们通过调用prefix_sum函数计算出了数组arr的前缀和数组prefix。最后,我们使用前缀和数组来计算了一个任意区间的元素和,左边界为1,右边界为4,得到了区间和为9。

通过使用前缀和,我们可以在O(1)的时间复杂度内计算出任意区间的元素和,而不需要每次都重新计算。这在处理大规模数据或需要频繁查询区间和的情况下非常有用。

前缀和算法:高效计算数组区间和

原文地址: https://www.cveoy.top/t/topic/pc0g 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录