区域和检索 - 数组不可变 发表于 2019-12-27 更新于 2019-12-28 分类于 leetcode 阅读次数: 区域和检索 - 数组不可变(难度:简单) 1 2 方法二: 缓存 3 1234567891011121314151617181920class NumArray { private int[] sum; public NumArray(int[] nums) { sum = new int[nums.length+1]; // 多增加一位 for(int i = 0; i < nums.length; i++){ sum[i+1] = sum[i] + nums[i]; } } public int sumRange(int i, int j) { return sum[j+1] - sum[i]; }}/** * Your NumArray object will be instantiated and called as such: * NumArray obj = new NumArray(nums); * int param_1 = obj.sumRange(i,j); */ 注意,在上面的代码中,我们插入了一个虚拟 0 作为 sum 数组中的第一个元素。这个技巧可以避免在 sumrange 函数中进行额外的条件检查。 4 5