Product of Array Except Self

Problem Summary

(Write in your own words, not copied from LeetCode. This forces comprehension.)

Key Observations

(Patterns, constraints, or hints in the problem statement.)

Approach Taken

(Step-by-step logic or pseudocode before coding.)

Main Concepts Used

(Mark the CS concepts or algorithms used.)

Time & Space Complexity

Code

class Solution:
    def productExceptSelf(self, nums: List[int]) -> List[int]:
        prefix = []
        prev = 1
        for i in range(len(nums)):
            prefix.append(prev)
            prev *= nums[i]

        suffix = []
        prev = 1
        for i in range(len(nums) - 1, -1, -1):
            suffix.append(prev)
            prev *= nums[i]
        suffix.reverse()

        result = []
        for p, s in zip(prefix, suffix):
            result.append(p * s)
        return result