303. Range Sum Query - Immutable

题目 303. Range Sum Query - Immutable

image-3397ed49

思路分析

代码实现

class NumArray {

    int[] PreSum;

    public NumArray(int[] nums) {
        int n=nums.length;
        PreSum = new int[n];
        PreSum[0]=nums[0];
        for(int i=1;i<n;i++){
            PreSum[i]=PreSum[i-1]+nums[i];
        }
    }

    public int sumRange(int left, int right) {
        if(left == 0)   return PreSum[right];
        return PreSum[right]-PreSum[left-1];
    }
}

/**
 Your NumArray object will be instantiated and called as such:
 * NumArray obj = new NumArray(nums);
 * int param_1 = obj.sumRange(left,right);
 */
class NumArray {

    int[] PreSum;

    public NumArray(int[] nums) {
        PreSum = nums;
        for(int i=1;i<PreSum.length;i++){
            PreSum[i]+=PreSum[i-1];
        }
    }

    public int sumRange(int left, int right) {
        if(left == 0)   return PreSum[right];
        return PreSum[right]-PreSum[left-1];
    }
}

/**
 Your NumArray object will be instantiated and called as such:
 * NumArray obj = new NumArray(nums);
 * int param_1 = obj.sumRange(left,right);
 */
class NumArray {

    int[] PreSum;
    
    public NumArray(int[] nums) {
        int n=nums.length;
        PreSum = new int[n+1];
        for(int i=1;i<=n;i++){
            PreSum[i]=PreSum[i-1]+nums[i-1];
        }
    }
    
    public int sumRange(int left, int right) {
        return PreSum[right+1]-PreSum[left];
    }
}

/**
 Your NumArray object will be instantiated and called as such:
 * NumArray obj = new NumArray(nums);
 * int param_1 = obj.sumRange(left,right);
 */

同类题型

视频讲解