
关于这个题目我刚开始想用求最大求和的方法,也就是数组左右两个指针的移动的方式,就是以右边指针为导向把左边的指针一直往右边去移动,因为不会出现反转。这个就是乘积的会反转所以必须用新的方法。
def maxProduct(self, nums):
#首先要有判断是不是空
#这个要用if not nums,这个都可以判断,。因为如果if num is None无法判断[]这种情况
if nums is None:
return 0
ans,da,xiao=nums[0],nums[0],nums[0]
for i in range(1,len(nums)):
num=nums[i]
cun=da
#这里把da存cun了,因为后面xiao的时候要用到cun
da=max(num,cun*num,xiao*num)
xiao=min(num,cun*num,xiao*num)
ans=max(ans,da)
return ans