https://leetcode.com/problems/range-sum-query-immutable/
- Prefix Sum
Precompute prefix sum array; query answer = prefix[right+1] - prefix[left].
O(n) preprocessing, O(1) per query
O(n)
class NumArray {
private int[] prefix;
public NumArray(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 sumRange(int left, int right) {
return prefix[right+1] - prefix[left];
}
}