range sum query mutable

🏠
 1class NumArray:
 2
 3    def __init__(self, nums: List[int]):
 4        self.sums = [0]*len(nums)
 5        self.nums = nums
 6        s = 0
 7        for i, v in enumerate(nums):
 8            s += v
 9            self.sums[i] = s
10
11    def update(self, i: int, val: int) -> None:
12        d = val - self.nums[i]
13        self.nums[i] = val
14        for i, v in enumerate(self.sums[i:], i):
15            self.sums[i] += d
16
17    def sumRange(self, i: int, j: int) -> int:
18        return self.sums[j] - (self.sums[i-1] if i - 1 >= 0 else 0)