prefix
前缀和
应用场景:不变区间, 区间求和.
一维: 数组
写下来不难发现, 这几个题目都是取左闭右开的区间, 即 (prev, i].
对于统计长度的题目, 需要初始化哈希表
prefix[0] = -1;对于统计个数的题目, 需要初始为
prefix[0] = 1
此外, 也可以是特殊的区间和, 比如: 权值为1-次数.
并且, 可以搭配一些定理来使用, 如: 同余定理
二维: 矩阵
以上两个题目都是二维前缀和, 除此之外, 可以将二维和压缩为一维, 当成数组前缀和来做
推广: 前缀异或-前缀乘积
除了上述题目的左开右闭区间, (prev, i], 还有左闭右开[prev, i), 具体取决于题意.
此时, 就不需要进行prefix[0] = **的预处理.
prefix
https://messenger1th.github.io/2024/07/24/LeetCode/prefix/