← switch

238. Product of Array Except Self

medium

Array · Prefix Sum

read the problem on leetcode →

first solved 15 Aug 2024 · 2 accepted submissions

python
class Solution:
    def productExceptSelf(self, nums: List[int]) -> List[int]:
        # [x,y,z]
        # [y*z,x*z, x*y]
        ans=[1]*len(nums)

        # forward pass 
        front=1
        for i in range(len(nums)):
            ans[i]=front
            front*=nums[i]
        
        # backward pass
        back=1
        for i in range(len(nums)-1, -1, -1):
            ans[i]*=back
            back*=nums[i]
        
        return ans
python
class Solution:
    def productExceptSelf(self, nums: List[int]) -> List[int]:
        result = [1] * len(nums) 
        prefix = 1
        for i in range(len(nums)):
            result[i] = prefix
            prefix *= nums[i]

            
        postfix = 1
        for i in range(len(nums) - 1, -1, -1):
            result[i] *= postfix
            postfix *= nums[i]
        return result