区域检索-数组不可变

73 阅读1分钟

303 区域检索-数组不可变

class NumArray {
    //前缀数组和
    private int[] preSum;
    public NumArray(int[] nums) {
        preSum = new int[nums.length + 1];
        for(int i = 1; i < preSum.length; i++) {
            //计算nums和,将每次的和都记录下来,下一次计算不用重新开始,类似kmp算法思想
            preSum[i] = preSum[i - 1] + nums[i - 1];
        }
    }
    
    //查询[left, right]区间和
    public int sumRange(int left, int right) {
        return preSum[right + 1] - preSum[left];
    }
}