Product of Array Except Self (LC-0238)
from functools import reduce
class Solution:
def productExceptSelf(self, nums):
zc = 0
prod = 1
for ix, n in enumerate(nums):
if n == 0: zc = zc + 1
prod = prod * n
if zc > 1:
return [0] * len(nums)
out = []
for ix, n in enumerate(nums):
if n == 0:
modified_nums = [(_n if ix != _ix else 1) for _ix, _n in enumerate(nums)]
prd = reduce(lambda x, y: x * y, modified_nums)
out.append(prd)
continue
out.append(prod // n)
return out