- 原数组不会被修改情况下,通过辅助数组来查找两个索引之间所有数的累加和。
- 方法一:矩阵
2 .方法二:前缀数组
通过一次遍历就可以建立一个辅助数组,存储sum+=sum+arr[i]
通过help[R]-help[L-1]可以求得L到R累加和(L>0)
public static class rangeSum
private int[] preSum;
public RangeSum(int[] arr){
int N=arr.length;
preSum=new int[N];
preSum[0]=arr[0];
for(int i=1;i<N;i++){
preSum[i]=preSum[i-1]+array[i]
}
}
public RangeSum(int L,int R){
return L==0?preSum[R]:preSum[R]-preSum[L-1];
}