Leetcode 303

来源:互联网 发布:曲面电视优缺点知乎 编辑:程序博客网 时间:2024/05/16 06:23

303. Range Sum Query - Immutable

计算出一个数组规定范围内的数值,是一个很简单的问题,但是根据题目的提示,数组不变并且会被多次调用求和一个范围的值,这就可以用要用动态规划来做,需要使用表格存储从0加到当前的和的数值,然后只要相减就可以得到规定范围内的数值,所以只需要O(mn)的时间复杂度就可以完成,并且表格可被多次使用。

class NumArray {public:    NumArray(vector<int> nums) {        int x = 0;        arr.push_back(0);        for (int i = 0; i < nums.size(); i++) {            x += nums[i];            arr.push_back(x);        }    }    int sumRange(int i, int j) {        return arr[j+1] - arr[i];    }    vector<int> arr;};