Total Accepted: 14338
Total Submissions: 59913
Difficulty: Easy
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.
分析:
技巧题,,申请数组先算出结果,计算时直接获取结果进行相加减即可
class NumArray {
public:
NumArray(vector<int> &nums)
{//因为会被大量调用,所以先把所有的和算出来
vec=nums;
int sum = 0;
for (int i = 0; i < nums.size(); i++)
{
sum += nums[i];
sumArray.push_back(sum);
}
}
int sumRange(int i, int j) {
int sumi=sumArray[i];
int sumj=sumArray[j];
return sumj-sumi+vec[i];
}
vector<int> vec;
vector<int> sumArray;
};
// Your NumArray object will be instantiated and called as such:
// NumArray numArray(nums);
// numArray.sumRange(0, 1);
// numArray.sumRange(1, 2);
注:本博文为EbowTang原创,后续可能继续更新本文。如果转载,请务必复制本条信息!
原文地址:http://blog.youkuaiyun.com/ebowtang/article/details/50354078
原作者博客:http://blog.youkuaiyun.com/ebowtang