LeetCode 238 Product of Array Except Self - Implementation

The approach

First pass builds prefix products. Second pass multiplies by suffix products.

function productExceptSelf(nums): n = len(nums) result = [1] * n leftProduct = 1 for i in range(n): result[i] = leftProduct leftProduct *= nums[i] rightProduct = 1 for i in range(n - 1, -1, -1): result[i] *= rightProduct rightProduct *= nums[i] return result

O(n)O(n) time, O(1)O(1) extra space.