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
本文讨论了如何在O(n)时间内解决数组中每个元素除自身外其他元素乘积的问题,通过一次遍历实现了非零元素的累积乘积,并针对零元素进行了特殊处理。
196

被折叠的 条评论
为什么被折叠?



