您的位置:首页 > 产品设计 > UI/UE

<LeetCode OJ> 303. Range Sum Query - Immutable

2015-12-18 20:30 766 查看


303. Range Sum Query - Immutable

My Submissions

Question

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.csdn.net/ebowtang/article/details/50354078

原作者博客:http://blog.csdn.net/ebowtang
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息