刷力扣热题–第十九天:238.除自身以外数组的乘积
菜鸟第十九天开始奋战敲代码,持之以恒,见证成长
1.题目简介
2.题目解答
类似于字典的思想,将中间结果保存,等到用的时候在提取,然后注意处理的就是0,如果数组中存在大于1个0,那么结果全部返回0就行,若只存在一个,那么只需要返回为0处其他部分的乘积,其余都为0.若不包含0,那么只需要求出总的乘积,再使用单个元素相除即可获得答案.时间复杂度O(N),空间复杂度O(N)
3.心得体会
题目还行,代码放下面了~
class Solution(object):
def productExceptSelf(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
multi = 1
zero = 0
for i in nums:
if i == 0 :
zero += 1
continue
multi = multi * i
if zero > 1:
return [0 for i in range(len(nums))]
if zero == 1:
for i in range (len(nums)):
if nums[i] == 0:
nums[i] = multi
else:
nums[i] = 0
return nums
for i in range(len(nums)):
nums[i] = multi /nums[i]
return nums
4.做题时长
7月24日 12:25-12:30 今天这道题难度不大,可以秒的