/** * 稀疏表 * * 解决可重复贡献问题的数据结构 * * 不支持修改操作 * * @filename: packages/utils/src/data-structure/SparseTable/SparseTable.ts * @author: Mr Prince * @date: 2022-10-25 16:41:54 */ declare class SparseTable { /** * 预先计算的结果 */ private table; /** * 快速计算 */ private lg; /** * @param values - 需要查询的数据 */ constructor(values: number[]); /** * 生成对数数组,查询时不需要每次计算对数 */ private createLg; /** * 预处理 * 两两相加递归 * [a, b, c, d, e, f, g] * [ab, cd, ef, g] * [abcd, efg] * [abcdefg] */ private preprocess; /** * 区间查询结果 * * 0 <= left <= right < values.length */ query(left: number, right: number): number; } export default SparseTable;