原题链接:https://leetcode.com/problems/range-sum-query-immutable/description/
实现如下:
/**
* Created by clearbug on 2018/4/8.
*/
public class NumArray {
private final int[] nums;
public NumArray(int[] nums) {
this.nums = nums;
}
/**
* 这是最简单的一种实现了
*
* Submission Detail: beats 3.37%
* Runtime: 710 ms
*
* @param i
* @param j
* @return
*/
public int sumRange(int i, int j) {
int sum = 0;
for (int k = i; k <= j; k++) {
sum += nums[k];
}
return sum;
}
// 这个效率太差了,看了下提交区的高分答案:把数组 nums 每个索引位置之前的元素的和在初始化时记录缓存下来下来,然后调用 sumRange 时就可以
// 直接返回了,因为题目里提到了:There are many calls to sumRange function. 所以缓存下来性能能大大提升的。
}