shlogg · Early preview
Prashant Mishra @prashantrmishra

Calculating Subarray Sum Using Prefix Sum In O(1) Time Complexity

Calculate prefix sums in O(n) time, then use them to find subarray sums in O(1) time with NumArray class. Prefix[i] stores sum till ith index, making range sum calculation efficient.

Problem
TC: O(n) for calculating the prefix sum and O(1) for getting the sum of the subarray in the range left and right

class NumArray {
    int prefix[];
    public NumArray(int[] nums) {
        prefix = new int[nums.length];
        int currentSum =0;
        for(int i=0;i<nums.length;i++){
            currentSum+=nums[i];
            prefix[i] = currentSum;
        }
    }
    public int sumRange(int left, int right) {
        int rightSum = prefix[right];
        int leftSum = (left>0) ? prefix[left-1]:0;
        return rightSum-leftSum;
    }
}
/**
 * Your NumArray object will be insta...