303. Range Sum Query

原题链接:https://leetcode.com/problems/range-sum-query-immutable/description/
实现如下:

/**
 * Created by clearbug on 2018/4/8.
 */
public class NumArray {

    private final int[] nums;

    public NumArray(int[] nums) {
        this.nums = nums;
    }

    /**
     * 这是最简单的一种实现了
     *
     * Submission Detail: beats 3.37%
     * Runtime: 710 ms
     *
     * @param i
     * @param j
     * @return
     */
    public int sumRange(int i, int j) {
        int sum = 0;
        for (int k = i; k <= j; k++) {
            sum += nums[k];
        }
        return sum;
    }

    // 这个效率太差了,看了下提交区的高分答案:把数组 nums 每个索引位置之前的元素的和在初始化时记录缓存下来下来,然后调用 sumRange 时就可以
    // 直接返回了,因为题目里提到了:There are many calls to sumRange function. 所以缓存下来性能能大大提升的。
}
原文地址:https://www.cnblogs.com/optor/p/8743996.html