前缀和:前缀和数组如何快速计算区间和?

前缀和数组是一种用于快速计算区间和的辅助数组。定义为:原数组A的前缀和数组S,其中S[0]=0,S[k](k≥1)是A[1]到A[k]的和,即S[k] = S[k-1] + A[k]。例如原数组A=[1,2,3,4,5],其前缀和数组S=[0,1,3,6,10,15]。 计算区间和的核心公式是:原数组从第i个到第j个元素的和 = S[j] - S[i-1]。例如计算A[2]到A[4]的和,用S[4]-S[1]=10-1=9,结果正确。 优势在于:预处理S数组需O(n)时间,每次区间和查询仅需O(1)时间,总复杂度O(n+q)(q为查询次数),远快于直接计算的O(qn)。需注意索引对齐(如原数组从0开始时公式调整)、区间合法性及空间换时间的特点。 前缀和数组通过“提前累积”实现

阅读全文