LC 0303 [E] Range Sum Query Immutable - ALawliet/algorithms GitHub Wiki

class NumArray:
    def __init__(self, nums: List[int]):
        self.preSum = nums 
        for i in range(len(nums)-1):
            self.preSum[i+1] += self.preSum[i]

    def sumRange(self, left: int, right: int) -> int:
        if left == 0: return self.preSum[right]
        return self.preSum[right] - self.preSum[left-1]
    
class NumArray(object):
    def __init__(self, nums):
        self.accu = [0]
        for num in nums: 
            self.accu += self.accu[-1] + num,

    def sumRange(self, i, j):
        return self.accu[j + 1] - self.accu[i]
    
class NumArray:
    def __init__(self, nums):
        self.arr = [0] + list(accumulate(nums))
        # self.arr = list(accumulate(nums, initial=0))
        
    def sumRange(self, left, right):
        return self.arr[right + 1] - self.arr[left]