leetcode 303 区域和检索-数组不可变
1.传统做法
// 传统的做法:
class NumArray {
private int[] nums;
public NumArray(int[] nums) {
this.nums = nums;
}
// 迭代累加和
public int sumRange(int left, int right) {
int res = 0;
for(int i = left;i<=right;i++) {
res += nums[i];
}
return res;
}
}
2.前缀和技巧
// 前缀和:
class NumArray {
// 前缀和数组
private int[] preSum;
// 构造前缀和
public NumArray(int[] nums) {
// 便于计算累加和
preSum= new int[nums.length + 1];
preSum[0] = 0;
for(int i = 1;i < preSum.length;i++) {
preSum[i