[leetcode] 303. Range Sum Query - Immutable
2016-07-29 11:33
393 查看
Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.
Example:
Note:
You may assume that the array does not change.
There are many calls to sumRange function.
解法一:
直观上如果每次去循环相加肯定不行。这里思路是根据前i个元素的和建立直方图,如果求i-j元素之和就是dp[j]-dp[i-1]. 注意到i==0是个corner case,这时候返回值应为dp[j]。
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.
解法一:
直观上如果每次去循环相加肯定不行。这里思路是根据前i个元素的和建立直方图,如果求i-j元素之和就是dp[j]-dp[i-1]. 注意到i==0是个corner case,这时候返回值应为dp[j]。
class NumArray { public: NumArray(vector<int> &nums) { dp = nums; for(int i=1; i<nums.size();++i){ dp[i] += dp[i-1]; } } int sumRange(int i, int j) { return i==0?dp[j]:dp[j]-dp[i-1]; } private: vector<int> dp; }; // 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 解题报告
- 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
- Leetcode 303. Range Sum Query - Immutable & 307. Range Sum Query - Mutable
- 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
- 【LeetCode】 303. Range Sum Query - Immutable
- leetcode303.[DP] Range Sum Query - Immutable
- 【leetcode】303. Range Sum Query - Immutable
- LeetCode 303. Range Sum Query - Immutable(数组求和)