1、利用动态规划思想,sum(i, j)
实际上是sum(0, j) - sum(0, i-1)
。
2、构造一个逐次累加和的数组,返回i、j两项相减结果即可。
class NumArray {
public:
NumArray(vector<int> nums) {
sums.clear();
sums.push_back(0);
for(int i = 0; i < nums.size(); i++){
sums.push_back(sums[i] + nums[i]);
}
}
int sumRange(int i, int j) {
return sums[j + 1] - sums[i];
}
private:
vector<int> sums;
};
/**
* Your NumArray object will be instantiated and called as such:
* NumArray obj = new NumArray(nums);
* int param_1 = obj.sumRange(i,j);
*/