prefix

前缀和

应用场景:不变区间, 区间求和.

一维: 数组

写下来不难发现, 这几个题目都是取左闭右开的区间, 即 (prev, i].

  1. 对于统计长度的题目, 需要初始化哈希表prefix[0] = -1;

  2. 对于统计个数的题目, 需要初始为prefix[0] = 1

此外, 也可以是特殊的区间和, 比如: 权值为1-次数.

并且, 可以搭配一些定理来使用, 如: 同余定理

二维: 矩阵

以上两个题目都是二维前缀和, 除此之外, 可以将二维和压缩为一维, 当成数组前缀和来做

推广: 前缀异或-前缀乘积

除了上述题目的左开右闭区间, (prev, i], 还有左闭右开[prev, i), 具体取决于题意.

此时, 就不需要进行prefix[0] = **的预处理.


prefix
https://messenger1th.github.io/2024/07/24/LeetCode/prefix/
作者
Epoch
发布于
2024年7月24日
许可协议