20210301

题目

https://leetcode-cn.com/problems/range-sum-query-immutable/

题解

1.循环直接求解

2.求出每一个的前缀和,如果那么subSum[i,j] = sums[j]-sums[i-1]

class NumArray {

    int[] sums;
    public NumArray(int[] nums) {
        sums = new int[nums.length];
        if (sums.length > 0) {
            sums[0] = nums[0];
        }
        for (int i = 1; i < nums.length; i++) {
            sums[i] = nums[i] + sums[i - 1];
        }
    }
    
    public int sumRange(int i, int j) {
        if(i==0){
            return sums[j];
        }
        return sums[j]-sums[i-1];
    }
}
其中因为if判断beginIndex i是否为0也是消耗时间的所以可以将sums[0]先设置成0,然后从1开始记录,这样就不会数组越界,减少判断

发表评论

邮箱地址不会被公开。 必填项已用*标注