product of array except self,这道题本身看上去不难,只是加了条件是要求O(n),这就要求只能遍历一次,不能每次都乘一遍。我的做法是遍历一次,把非零的都乘起来,将0 的单独处理。代码如下:
class Solution(object):
def productExceptSelf(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
pro = 1
a = []
for i in nums:
if i != 0:
pro = pro * i
else:
a.append(0)
b = []
if len(a) > 1:
for i in nums:
b.append(0)
elif len(a) == 1:
for i in nums:
if i == 0:
b.append(pro)
else:
b.append(0)
else:
for i in nums:
b.append(pro / i)
return b