区域和检索-数组不可变(简单)
2020年6月15日
题目来源:力扣
解题
- 暴力
class NumArray {
private int[] data;
public NumArray(int[] nums) {
data=nums;
}
public int sumRange(int i, int j) {
int sum=0;
for(int id=i;id<=j;id++){
sum+=data[id];
}
return sum;
}
}
- 前缀和(来自官方题解)
写法简单,data[0]留第一位为0的写法学到了。
class NumArray {
private int[] data;
public NumArray(int[] nums) {
data=new int[nums.length+1];
for(int i=0;i<nums.length;i++){
data[i+1]=data[i]+nums[i];
}
}
public int sumRange(int i, int j) {
return data[j+1]-data[i];
}
}