(Variant: prefix sum based query)
- Prefix Sum
Precompute prefix sum; queries answered using prefix[right] - prefix[left-1].
O(n) preprocessing
O(n)
class PrefixSumQuery {
private int[] prefix;
public PrefixSumQuery(int[] nums) {
prefix = new int[nums.length + 1];
for (int i = 0; i < nums.length; i++) {
prefix[i+1] = prefix[i] + nums[i];
}
}
public int query(int left, int right) {
return prefix[right+1] - prefix[left];
}
}