303. Range Sum Query - Immutable

Problem:

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.
  3. </ol> </p>

    Solutions:

    class NumArray {
    public:
        NumArray(vector<int>& nums) {
            int sum = 0;
            for (int i = 0; i < nums.size(); ++i) {
                sum += nums[i];
                prefixSum.push_back(sum);
            }
        }
    
        int sumRange(int i, int j) {
            if (i == 0) return prefixSum[j];
            return prefixSum[j] - prefixSum[i - 1];
        }
    
    private:
        vector<int> prefixSum;
    
    };
    
    /**
     * Your NumArray object will be instantiated and called as such:
     * NumArray* obj = new NumArray(nums);
     * int param_1 = obj->sumRange(i,j);
     */
    

    results matching ""

      No results matching ""