303. Range Sum Query

来源:互联网 发布:evanescence知乎 编辑:程序博客网 时间:2024/05/16 12:25

参考答案链接:

点击打开链接

class NumArray {public:    //构造函数    NumArray(vector<int> nums) {        if(nums.empty()){            return;        }        else{            //求出从开始的0位置到当前i位置的累加和            //当求指定位置的时候就是sum[j]-sum[i-1]            int len = nums.size();            sum.push_back(nums[0]);            for(int i = 1 ; i < len ; i++){                sum.push_back(sum[i-1] + nums[i]) ;            }        }    }        int sumRange(int i, int j) {        //判断如果i是0则表示,求开始到j的累加和,也就是s[j]        if(i == 0){            return sum[j];        }        int len = sum.size();        if(i<0 || i >=len || j<i || j>=len){            return 0;        }        return sum[j]- sum[i-1];    }private :    vector<int> sum;};/** * Your NumArray object will be instantiated and called as such: * NumArray obj = new NumArray(nums); * int param_1 = obj.sumRange(i,j); */