LeetCode 303. Range Sum Query

来源:互联网 发布:mac pro 强制关机 编辑:程序博客网 时间:2024/06/05 20:20

303. Range Sum Query - Immutable

Description
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.

Analysis
这道题的意思其实就是求所给数组在所给区间内的数值和。
由于题目给出来的是两个函数。
所以我的做法是先设置一个向量,然后利用这个向量来记录从数组开始到当前位置i的数值和。
最后在sumRange中来求出结果数值和。

Code

class NumArray {public:    vector<int> vec;    NumArray(vector<int> nums) {        if(nums.empty()) return ;        //for(int i = 0 ; i < nums.size();++i) vec.push_back(nums[i]);        vec.push_back(nums[0]);        for(int i = 1 ; i < nums.size(); ++i){            vec.push_back(nums[i]+vec[i-1]) ;        }    }    int sumRange(int i, int j) {        if(i == 0) return vec[j];        else return vec[j] - vec[i-1];    }};/** * Your NumArray object will be instantiated and called as such: * NumArray obj = new NumArray(nums); * int param_1 = obj.sumRange(i,j); */
0 0
原创粉丝点击