前缀和,注意的是sum[j]-sum[i-1],如果i为0的话,直接返回sum[j]
class NumArray {
public:
//前缀和思想?
//前缀和在初始化的时候就计算出来就行了
//不用每次都for循环计算
NumArray(vector<int>& nums) {
sum = nums;
for(int i = 1; i < sum.size(); ++i){
sum[i] += sum[i-1];
}
}
int sumRange(int i, int j) {
if(i == 0) return sum[j];
//应该是从0到j减去0到i-1的结果
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);
*/