Leetcode-303 Range Sum Query - Immutable
Posted 北冥有鱼,南冥有猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode-303 Range Sum Query - Immutable相关的知识,希望对你有一定的参考价值。
#303. Range Sum Query - Immutable
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.
以为很简单就做了,下面的方法超时啊啊啊,然后被超时虐了,因为很多调用。
class NumArray { public: NumArray(vector<int> &nums) { num=nums; } int sumRange(int i, int j) { int sum=0; while(i<=j) { sum+=num[i]; } return sum; } private: vector<int> num; }; // Your NumArray object will be instantiated and called as such: // NumArray numArray(nums); // numArray.sumRange(0, 1); // numArray.sumRange(1, 2);
只好换种思路,num[i]存的是nums的前i-1个元素之和,反正前j个元素和减掉前i-1个元素和等于i到j的和。
class NumArray { public: NumArray(vector<int> &nums) { num.push_back(0); for(int i=1;i<=nums.size();i++) { num.push_back(num[i-1]+nums[i-1]); } } int sumRange(int i, int j) { return num[j+1]-num[i]; } private: vector<int> num; }; // Your NumArray object will be instantiated and called as such: // NumArray numArray(nums); // numArray.sumRange(0, 1); // numArray.sumRange(1, 2);
以上是关于Leetcode-303 Range Sum Query - Immutable的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 303. Range Sum Query - Immutable
Leetcode 303. Range Sum Query - Immutable
Leetcode 303: Range Sum Query - Immutable
[leetcode] 303. Range Sum Query - Immutable
Java [Leetcode 303]Range Sum Query - Immutable
leetCode 303. Range Sum Query - Immutable | Dynamic Programming