解题思路:
求解区间内元素的和。由于要多次查询,最朴素的方法是每次查询依次遍历集合中的所有元素并求和。但显然多次查询区间有交叉的话会重复计算某些新元素。由于区间是连续的,考虑保存中间的结果。下次查询就节省了很多重复计算。
实现代码:
class NumArray {
public:
vector<int> arr;
NumArray(vector<int> nums) {
arr.push_back(0);
for(int i=0;i<nums.size();i++)
arr.push_back(nums[i]+arr[i]);
}
int sumRange(int i, int j) {
return arr[j+1]-arr[i];
}
};

本文介绍了一种通过预处理数组来优化区间求和查询的方法,避免了重复计算,提高了查询效率。
690

被折叠的 条评论
为什么被折叠?



