LeetCode 303. Range Sum Query - Immutable

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

Example:

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

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

Note:

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

Since the elements are not immutable, we can just use simple DP to solve it.

class NumArray {
private:
    vector<int> dp;
public:
    NumArray(vector<int> &nums) {
        dp.resize(nums.size() + 1, 0);
        for(int i = 1; i <= nums.size(); ++i) {
            dp[i] = dp[i-1] + nums[i-1];
        }
    }

    int sumRange(int i, int j) {
        return dp[j + 1] - dp[i];
    }
};

你可能感兴趣的:(LeetCode 303. Range Sum Query - Immutable)