参考答案链接:
class NumArray {
public:
//构造函数
NumArray(vector<int> nums) {
if(nums.empty()){
return;
}
else{
//求出从开始的0位置到当前i位置的累加和
//当求指定位置的时候就是sum[j]-sum[i-1]
int len = nums.size();
sum.push_back(nums[0]);
for(int i = 1 ; i < len ; i++){
sum.push_back(sum[i-1] + nums[i]) ;
}
}
}
int sumRange(int i, int j) {
//判断如果i是0则表示,求开始到j的累加和,也就是s[j]
if(i == 0){
return sum[j];
}
int len = sum.size();
if(i<0 || i >=len || j<i || j>=len){
return 0;
}
return sum[j]- sum[i-1];
}
private :
vector<int> sum;
};
/**
* Your NumArray object will be instantiated and called as such:
* NumArray obj = new NumArray(nums);
* int param_1 = obj.sumRange(i,j);
*/