前缀和算法,数组索引区间内的各项和。
输入: ["NumArray", "sumRange", "sumRange", "sumRange"] [[[-2, 0, 3, -5, 2, -1]], [0, 2], [2, 5], [0, 5]] 输出: [null, 1, -1, -3]
解释: NumArray numArray = new NumArray([-2, 0, 3, -5, 2, -1]); numArray.sumRange(0, 2); // return 1 ((-2) + 0 + 3) numArray.sumRange(2, 5); // return -1 (3 + (-5) + 2 + (-1)) numArray.sumRange(0, 5); // return -3 ((-2) + 0 + 3 + (-5) + 2 + (-1))
var sum=function(nums){
let n = nums.length
this.arr = new Array(n+1).fill(0)
for(let i=0;i<n;i++){
this.arr[i+1]=this.arr[i]+nums[i]
}
}
sum.prototype.add=function(i,j){
return this.arr[j+1]-this.arr[i]
}