DEV Community

Prashant Mishra
Prashant Mishra

Posted on

Pattern: Prefix sum

Prefix sum: involves storing sum/product upto each index for quick access/lookup for range queries
e.g. Product of Array Except Self

class Solution {
    public int[] productExceptSelf(int[] nums) {
        int a[] =  new int[nums.length];
        int b[] = new int[nums.length];
        a[0] = nums[0];
        b[nums.length-1] = nums[nums.length-1];
        for(int i =1;i< nums.length;i++){
            a[i]  = a[i-1]*nums[i];
        }
        for(int i  = nums.length-2;i>=0;i--){
            b[i] = nums[i]*b[i+1];
        }
        System.out.println();
        for(int i = 0;i< nums.length;i++){
            nums[i] = (i-1 >=0 ? a[i-1] : 1) * (i+1 <=nums.length-1 ? b[i+1] : 1); 
        }
        return nums;
    }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)