Question
Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.
Example:
Given nums = [-2, 0, 3, -5, 2, -1]
sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3
Note:
You may assume that the array does not change.
There are many calls to sumRange function.
Hide Tags Dynamic Programming
Hide Similar Problems (M) Range Sum Query 2D - Immutable (M) Range Sum Query - Mutable
My Solution
Accept
class NumArray(object):
def __init__(self, nums):
"""
initialize your data structure here.
:type nums: List[int]
"""
if len(nums)!=0:
self.sum = [0]*len(nums)
self.sum[0] = nums[0]
for ind in range(1,len(nums)):
self.sum[ind] = self.sum[ind-1] + nums[ind]
else:
self.sum = -1
def sumRange(self, i, j):
"""
sum of elements nums[i..j], inclusive.
:type i: int
:type j: int
:rtype: int
"""
if i>j or self.sum==-1:
return 0
if i==0:
return self.sum[j]
return self.sum[j] - self.sum[i-1]
# Your NumArray object will be instantiated and called as such:
# numArray = NumArray(nums)
# numArray.sumRange(0, 1)
# numArray.sumRange(1, 2)