LeetCode -- Range Sum Query - Immutable
2017-08-01 10:54
162 查看
题目:
Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.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.
思路:
这道题是简单的动态规划的思想,参考了别人的思路后写出了
O(n)的构建时间复杂度,
O(1)的查询时间复杂度。构建一个
vector记录
nums的和,如下:
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|
nums | -2 | 0 | 3 | -5 | 2 | -1 | |
sum | 0 | -2 | -2 | 1 | -4 | -2 | -3 |
sumRange(i, j) = sum[j+1]-sum[i],
j+1是因为为了使代码简洁,刚开始的时候向
sumpush了一个0。
C++代码实现:
class NumArray { public: NumArray(vector<int> nums) { sum.push_back(0); for(int i=0; i<nums.size(); ++i){ sum.push_back(sum.back() + nums[i]); } } int sumRange(int i, int j) { return sum[j+1]-sum[i]; } 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); */
相关文章推荐
- LeetCode Range Sum Query 2D - Immutable
- LeetCode笔记:303. Range Sum Query - Immutable
- leetcode 303. Range Sum Query - Immutable
- leetcode--Range Sum Query - Immutable
- LeetCode 303. Range Sum Query - Immutable(数组求和)
- leetcode- Range Sum Query - Immutable
- leetcode[Range Sum Query - Immutable]//待整理多种解法
- LeetCode No.303 Range Sum Query - Immutable
- Leetcode 303 Range Sum Query - Immutable
- Leetcode193: Range Sum Query - Immutable
- Leetcode Range Sum Query 2D - Immutable
- LeetCode 303. Range Sum Query - Immutable
- [LeetCode] 303. Range Sum Query - Immutable (Easy)
- LeetCode 304. Range Sum Query 2D - Immutable
- Range Sum Query 2D - Immutable My Submissionsstion-leetcode
- [LeetCode] Range Sum Query - Immutable & Range Sum Query 2D - Immutable
- LeetCode303——Range Sum Query - Immutable
- LeetCode 304. Range Sum Query 2D - Immutable(矩阵求和)
- LeetCode 303. Range Sum Query - Immutable
- leetcode 303. Range Sum Query - Immutable