Range Sum Query - Mutable
描述
Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.
The update(i, val) function modifies nums by updating the element at index i to val.
Example:
Given nums = [1, 3, 5]
sumRange(0, 2) -> 9
update(1, 2)
sumRange(0, 2) -> 8
Note:
- The array is only modifiable by the update function.
- You may assume the number of calls to update and sumRange function is distributed evenly.
分析
由于需要求任意段的和,且会随机修改元素,用线段树(Segment Tree)再合适不过了。
另外一个数据结构,树状数组(Binary Indexed Tree),也适合解这道题。