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.
public class NumArray { private static int[] nums; private static int[] sums; public NumArray(int[] nums) { if(nums==null) return ; this.nums = nums; sums=new int[nums.length];//注意为什么不nums=sums,这样的话跟着变,这样的话原始数组也会变,这样不科学 if (nums.length == 1) { sums[0] = nums[0]; return; } for (int x = 1; x < nums.length; x++) { sums[x] = sums[x - 1] + nums[x]; } } public int sumRange(int i, int j) { return sums[j]-sums[i]+nums[i]; } } // Your NumArray object will be instantiated and called as such: // NumArray numArray = new NumArray(nums); // numArray.sumRange(0, 1); // numArray.sumRange(1, 2);