Binary-Indexed-Tree
Segment Tree and Fenwick Tree
·3 mins
Algorithm
Segment-Tree
Binary-Indexed-Tree
Design
Point updates with range queries: a Fenwick tree (binary indexed tree) jumps by i & -i, and a segment tree recursively halves the range; both take O(log n) per operation
LeetCode 4051: Count Subarrays with Distant Sums
·5 mins
LeetCode
Hard
Merge-Sort
Prefix-Sum
Binary-Indexed-Tree
Biweekly-Contest
LeetCode 4051 note: prefix sums, complement counting, range counting, and the k = 0 edge case
LeetCode 315: Count of Smaller Numbers After Self
·4 mins
LeetCode
Hard
Merge-Sort
Divide-and-Conquer
Binary-Indexed-Tree
Counting
LeetCode 315 note: merge sort with indices, plus a BIT solution
LeetCode 2193: Minimum Number of Moves to Make Palindrome
·3 mins
LeetCode
Hard
Two-Pointers
Greedy
String
Binary-Indexed-Tree
LeetCode 2193 note: greedily fix the outer pair: take the last character and swap its leftmost partner to the front, costing that index; the unpaired character ends in the middle, costing its distance there
LeetCode 327: Count of Range Sum
·3 mins
LeetCode
Hard
Merge-Sort
Divide-and-Conquer
Prefix-Sum
Binary-Indexed-Tree
LeetCode 327 note: prefix sums plus merge sort counting with two pointers bounding a range, and a log of retyping it over a dozen times
LeetCode 307: Range Sum Query - Mutable
·3 mins
LeetCode
Medium
Segment-Tree
Binary-Indexed-Tree
Design
Array
LeetCode 307 note: point updates with range sums make prefix sums O(n) per update; a segment tree or Fenwick tree makes both operations O(log n)