functions前缀和

前缀和题型:怎么识别、怎么讲、怎么练

前缀和最直接的价值是避免重复计算重叠区间。它和哈希表结合后,会从“求区间和”进化成“统计目标差值”的强力模式。

覆盖题量

35+

推荐起手

先判断只要前缀数组,还是要前缀和 + 哈希。

高频误区

区间端点的闭开关系混乱。

什么时候该想到这个模式

题目要处理很多区间求和或区间统计。
答案依赖两个累计状态之间的差。
子数组目标条件可以改写成 prefix[j] - prefix[i] = target。

下手前的检查清单

先判断只要前缀数组,还是要前缀和 + 哈希。
想让区间公式更干净时,前面加一个 0。
区间端点是闭区间还是半开区间,要说清楚。
模运算题里要记得处理负数归一化。

真正适合面试表达的解题步骤

1

先定义累计状态代表什么。

2

一趟扫描构造前缀。

3

把目标条件改写成两个前缀状态的差。

4

如果是计数题,注意哈希表是先查再存还是先存再查。

5

每一步都用 O(1) 的差值更新答案。

常见变体

区间查询

用前缀数组快速回答重复的区间查询。

前缀和 + 哈希

通过查找之前出现过的前缀状态来统计或定位子数组。

二维前缀和

压缩矩阵中的子矩形查询。

模板预览

Python公开预览
prefix = [0] * (len(nums) + 1)
for i, value in enumerate(nums):
    prefix[i + 1] = prefix[i] + value

range_sum = prefix[r + 1] - prefix[l]

更像真实刷题路径的推荐题单

这组题不是随机罗列,而是按“先建立识别感,再补关键变体,最后上强度”去排,适合真的拿来做一轮 pattern 复习。

高频坑点

warning

区间端点的闭开关系混乱。

warning

计数题里哈希表更新时机写错。

warning

模值没有归一化,导致查找失败。

warning

明明更适合正数滑窗,却硬写成前缀和。

练习顺序建议

1

先做不可变数组区间和。

2

再做和为 k 的子数组。

3

然后补整除和取模类前缀题。

4

最后做树上前缀和或二维前缀和变体。

前缀和题型总结 | LeetCode 高频面试模式 - Interview AiBox