首页 > 其他 > 详细

LeetCode OJ:Range Sum Query - Immutable(区域和)

时间:2015-11-15 12:03:53      阅读:223      评论:0      收藏:0      [点我收藏+]
Given nums = [-2, 0, 3, -5, 2, -1]

sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3

Note:

  1. You may assume that the array does not change.
  2. There are many calls to sumRange function.

求区域和,而且这个和也有可能被多次的调用,所以不能使用直接计算的方法,用dp解决,注意0这个点的特殊情况就可以了 ,代码如下:

 1 class NumArray {
 2 public:
 3     NumArray(vector<int> &nums) {
 4         sum.resize(nums.size());
 5         for(int i = 0; i < nums.size(); ++i){
 6             sum[i] = i == 0 ? nums[0] : nums[i] + sum[i - 1];
 7         }
 8     }
 9 
10     int sumRange(int i, int j) {
11         if(i == 0)
12             return sum[j];
13         return sum[j] - sum[i - 1];
14     }
15 private:
16     vector<int> sum;
17 };

 

LeetCode OJ:Range Sum Query - Immutable(区域和)

原文:http://www.cnblogs.com/-wang-cheng/p/4966262.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!