class NumArray {
public:
NumArray(vector<int> &nums) {
up = nums.size();
int sum = 0;
for (auto v : nums) {
sum += v;
cache.push_back(sum);
}
}
int sumRange(int i, int j) {
if (i > j || i<0 || j>=up)
return0;
if (i - 1 < 0)
return cache[j];
elsereturn cache[j] - cache[i - 1];
}
private:
vector<int> cache;
int up;
};
python
classNumArray(object):def__init__(self, nums):"""
initialize your data structure here.
:type nums: List[int]
"""
self.up = len(nums)
self.sumArray=[]
v=0for x in nums:
v+=x
self.sumArray.append(v)
defsumRange(self, i, j):"""
sum of elements nums[i..j], inclusive.
:type i: int
:type j: int
:rtype: int
"""if i<0or j>=self.up or i>j:
return0;
if i-1<0:
return self.sumArray[j];
else:
return self.sumArray[j]-self.sumArray[i-1]