Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.
Example:
Given nums = [-2, 0, 3, -5, 2, -1] sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 sumRange(0, 5) -> -3
Note:
- You may assume that the array does not change.
- There are many calls to sumRange function.
A:
class NumArray { public: NumArray(vector<int>& nums) { int sum = 0; for(auto v: nums) { sum += v; V.push_back(sum); } } int sumRange(int i, int j) { int pre = i>0? V[i-1] : 0; return V[j] - pre; } private: vector<int> V; // assume no overflow on int }; /** * Your NumArray object will be instantiated and called as such: * NumArray* obj = new NumArray(nums); * int param_1 = obj->sumRange(i,j); */
No comments:
Post a Comment