303. Range Sum Query - Immutable
程序员文章站
2023-12-22 23:10:22
...
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.
方法1:
思路:
构建一个prefix vector。
易错点
- 为了方便prefix比num多一个数,那么就要求在处理两个index的时候区别对待。
- 在算差值的时候,由于是左右闭区间,左右也要区别对待。
Complexity
Time complexity: O(T) for constructor, O(1) for calculate samRange
Space complexity: O(T)
class NumArray {
private:
vector<int> prefix;
public:
NumArray(vector<int>& nums) {
prefix = nums;
prefix.insert(prefix.begin(), 0);
for (int i = 1; i < prefix.size(); i++){
prefix[i] = prefix[i - 1] + nums[i - 1];
}
}
int sumRange(int i, int j) {
return prefix[j + 1] -prefix[i];
}
};
/**
* Your NumArray object will be instantiated and called as such:
* NumArray* obj = new NumArray(nums);
* int param_1 = obj->sumRange(i,j);
*/
推荐阅读
-
303. Range Sum Query - Immutable
-
【leetcode】307. Range Sum Query - Mutable
-
LC.307. Range Sum Query - Mutable
-
leetcode 307. Range Sum Query - Mutable
-
Leetcode-307. 区域和检索 - 数组可修改 Range Sum Query - Mutable (线段树Segment Tree)-超详细Python
-
【树状数组】LeetCode 307. Range Sum Query - Mutable
-
leetcode-307. Range Sum Query - Mutable]()
-
数据结构线段树介绍与笔试算法题-LeetCode 307. Range Sum Query - Mutable--Java解法
-
LeetCode 307. Range Sum Query - Mutable (范围求和查询)
-
LeetCode------Range Sum Query - Mutable