> For the complete documentation index, see [llms.txt](https://zhongwen.gitbook.io/leetcode-report/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zhongwen.gitbook.io/leetcode-report/easy/303.-range-sum-query-immutable.md).

# 303. Range Sum Query - Immutable

Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.

**Example:**<br>

```
Given nums = [-2, 0, 3, -5, 2, -1]

sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3
```

**Note:**<br>

1. You may assume that the array does not change.
2. There are many calls to sumRange function.

#### 解题要点：

标准DP题，声明一个dp数组，把nums里的数累计加到dp直到最后一位。需要返回sumRange时，直接调用dp\[j + 1] - dp\[i] 即可。

```java
class NumArray {
    int[] dp = null;
    public NumArray(int[] nums) {
        int N = nums.length;
        dp = new int[N + 1];
        for(int i = 1; i <= N; i++){
            dp[i] = dp[i-1] + nums[i-1];
        }
    }
    
    public int sumRange(int i, int j) {
        return dp[j + 1] - dp[i];
    }
}

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