238. Product of Array Except Self (Medium) - TengnanYao/daily_leetcode GitHub Wiki

class Solution(object):
    def productExceptSelf(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        zero, p = 0, 1
        for num in nums:
            if num == 0:
                zero += 1
            else:
                p *= num
        if zero >= 2:
            return [0] * len(nums)
        if zero == 1:
            return [0 if num else p for num in nums]
        if zero == 0:
            return [p // num for num in nums]