We use cookies for site analytics. Accept to help us understand how the site is used. See our Privacy Policy for details.
A hard design problem, graded against 5 test cases (2 of them hidden).
Build a working data structure to an API - LRU caches, rate limiters, and iterators.
Reach for it when you see: "Design a class supporting these operations in O(1)" - an API rather than a single function.
More Designproblems →A Fenwick tree supports both point updates and prefix sums in O(log n). To handle replacement updates we track the current value of each index and apply the delta (`new - old`) to the BIT. `sumRange(l, r) = prefix(r) - prefix(l-1)`.
A segment tree is the more general solution and is required if we ever need range-update + range-query (with lazy propagation). For sum-only point-update + range-query, BIT is leaner.
The full reference solution in every supported language stays in the editor above - reveal it there once you have had a real attempt.
Read off this problem's own test suite, so these are the cases a submission actually has to survive.
These apply to the pattern as a whole, not just this problem.