ds-kit-js - v1.1.0
    Preparing search index...

    Class FenwickTree

    Дерево Фенвика (Binary Indexed Tree) для префиксных сумм. Прибавление к элементу и сумма на отрезке — O(log n), построение — O(n). Компактнее и быстрее SegmentTree, но поддерживает только обратимые операции (сумму).

    Отрезки задаются полуинтервалом [from, to).

    const sums = new FenwickTree([3, 1, 4, 1, 5]);
    sums.rangeSum(1, 4); // 1 + 4 + 1 = 6
    sums.add(2, 10);
    sums.prefixSum(3); // 3 + 1 + 14 = 18
    Index
    • Parameters

      • sizeOrValues: number | readonly number[]

        Длина массива из нулей или исходные значения.

      Returns FenwickTree

    • Прибавляет delta к элементу index.

      Parameters

      • index: number
      • delta: number

      Returns void

    • Устанавливает значение элемента.

      Parameters

      • index: number
      • value: number

      Returns void

    • Значение элемента.

      Parameters

      • index: number

      Returns number

    • Сумма первых count элементов, то есть отрезка [0, count).

      Parameters

      • count: number

      Returns number

    • Сумма на полуинтервале [from, to).

      Parameters

      • from: number
      • to: number

      Returns number