Prefix sum
public class NumArray {
private int[] prefixSum;
public NumArray(int[] nums) {
prefixSum = new int[nums.length + 1];
int sum = 0;
for (int i = 0; i < nums.length; ++i) {
sum += nums[i];
prefixSum[i + 1] = sum;
}
}
public int sumRange(int i, int j) {
if (i >= prefixSum.length - 1 && j >= prefixSum.length - 1) return 0;
return prefixSum[j + 1] - prefixSum[i];
}
}