由于query是频繁的,我们需要让查询的操作尽可能块,利用空间count[i]记录前i个nums的和,那么count[j]-count[i-1]便是i到j的和
public class NumArray {
int[] count;
public NumArray(int[] nums) {
count=new int[nums.length];
if( nums.length!=0 )
{
count[0]=nums[0];
for( int i=1;i<nums.length;i++ )
{
count[i]=count[i-1]+nums[i];
}
}
}
public int sumRange(int i, int j) {
if( i==0 )
{
return count[j];
}
return count[j]-count[i-1];
}
}
// Your NumArray object will be instantiated and called as such:
// NumArray numArray = new NumArray(nums);
// numArray.sumRange(0, 1);
// numArray.sumRange(1, 2);