题目链接:https://leetcode.com/problems/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.

算法:


 
  
1. public class NumArray {  
2. int nums[];  
3. int sums[];  
4.   
5. public NumArray(int[] nums) {  
6. this.nums = nums;  
7. if (nums != null && nums.length != 0) {  
8. this.sums = new int[nums.length];  
9. 0] = nums[0];  
10. for (int i = 1; i < sums.length; i++) {  
11. 1] + nums[i];  
12.             }  
13.         }  
14.     }  
15.   
16. public int sumRange(int i, int j) {  
17. int sum = sums[j] - sums[i] + nums[i];  
18. return sum;  
19.     }  
20. }