303. Range Sum Query - Immutable

Posted 我的名字叫周周

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了303. Range Sum Query - Immutable相关的知识,希望对你有一定的参考价值。

/*
 * 303. Range Sum Query - Immutable 
 * 2016-7-3 by Mingyang
 * 这个题目很简单的一开始看来,直接累加就好,但是这里说的是sumRange会被调用很多次
 * 因此需要把结果先存起来,调用时就可以直接返回了。最开始考虑的是用dp[i][j]来直接存储i到j之间元素的和,
 * 但是内存超出限制。于是考虑用dp[i]来存储0到i之间元素的和,0到j的和减去0到i-1的和即为所求。
 */
class NumArray {
    private int[] dp;
    public NumArray(int[] nums) {
        dp = new int[nums.length];
        int sum = 0;
        for (int i = 0; i < nums.length; i++) {
            sum += nums[i];
            dp[i] = sum;
        }
    }
    public int sumRange(int i, int j) {
        return i == 0 ? dp[j] : dp[j] - dp[i - 1];
    }
}

 

以上是关于303. Range Sum Query - Immutable的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode-303 Range Sum Query - Immutable

303. Range Sum Query - Immutable

303. Range Sum Query - Immutable

303. Range Sum Query - Immutable

303. Range Sum Query - Immutable

LeetCode 303. Range Sum Query - Immutable