题目链接: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:
- You may assume that the array does not change.
- There are many calls to sumRange function.
算法:
- public class NumArray {
- int nums[];
- int sums[];
-
- public NumArray(int[] nums) {
- this.nums = nums;
- if (nums != null && nums.length != 0) {
- this.sums = new int[nums.length];
- sums[0] = nums[0];
- for (int i = 1; i < sums.length; i++) {
- sums[i] = sums[i - 1] + nums[i];
- }
- }
- }
-
- public int sumRange(int i, int j) {
- int sum = sums[j] - sums[i] + nums[i];
- return sum;
- }
- }