303. Range Sum Query - Immutable

Posted __Meng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了303. Range Sum Query - Immutable相关的知识,希望对你有一定的参考价值。

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:

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

 

区间求和

 

C++(166ms):

 1 class NumArray {
 2 public:
 3     NumArray(vector<int> nums) {
 4         int sum = 0 ;
 5         for(int n : nums){
 6             sum += n ;
 7             res.push_back(sum) ;
 8         }
 9     }
10     
11     int sumRange(int i, int j) {
12         if (i == 0)
13             return res[j] ;
14         else
15             return res[j] - res[i-1] ;
16     }
17 private:
18     vector<int> res;
19 };
20 
21 /**
22  * Your NumArray object will be instantiated and called as such:
23  * NumArray obj = new NumArray(nums);
24  * int param_1 = obj.sumRange(i,j);
25  */

 

Java(150ms):

 1 class NumArray {
 2 
 3     int[] res ;
 4     public NumArray(int[] nums) {
 5         for(int i = 1; i < nums.length ; i++){
 6             nums[i] += nums[i-1] ;
 7         }
 8         this.res = nums ;
 9     }
10     
11     public int sumRange(int i, int j) {
12         if (i == 0)
13             return res[j] ;
14         else
15             return res[j] - res[i-1] ;
16     }
17 }
18 
19 /**
20  * Your NumArray object will be instantiated and called as such:
21  * NumArray obj = new NumArray(nums);
22  * int param_1 = obj.sumRange(i,j);
23  */

 

以上是关于303. Range Sum Query - Immutable的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode-303 Range Sum Query - Immutable

303. Range Sum Query - Immutable

303. Range Sum Query - Immutable

303. Range Sum Query - Immutable

303. Range Sum Query - Immutable

LeetCode 303. Range Sum Query - Immutable