前缀和是什么意思?
摘要:题目 LeetCode 力扣 难度 303. Range Sum Query - Immutable 303. 区域和检索 - 数组不可变 🟢 304. Range Sum Query 2D - Immuta
题目
LeetCode
力扣
难度
303. Range Sum Query - Immutable
303. 区域和检索 - 数组不可变
🟢
304. Range Sum Query 2D - Immutable
304. 二维区域和检索 - 矩阵不可变
🟠
-同
剑指 Offer II 013. 二维子矩阵的和
🟠
-----------
303. 区域和检索 - 数组不可变
我的答案
1、题目理解
前缀和只差
2、注意事项
前缀和 preSum[1] = 0+num[0],即preSum[i+1]包含num[i]
向量动态扩展大小的方法 resize
3、我的代码
using namespace std;
class NumArray {
vector<int> presum;
public:
NumArray(vector<int>& nums) {
presum.resize(nums.size() + 1, 0);
presum[0] = 0;
for (int i = 0; i < nums.size(); ++i) {
presum[i + 1] = presum[i] + nums[i];
}
}
int sumRange(int left, int right) {
return presum[right+1] - presum[left];
}
};
python 版本
class NumArray:
def __init__(self, nums: List[int]):
self.sums = [0]
_sums = self.sums
for num in nums:
_sums.append(_sums[-1] + num)
def sumRange(self, i: int, j: int) -> int:
_sums = self.sums
return _sums[j + 1] - _sums[i]
作者:力扣官方题解
链接:https://leetcode.cn/problems/range-sum-query-immutable/solutions/627052/qu-yu-he-jian-suo-shu-zu-bu-ke-bian-by-l-px41/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
