Maximum Product Subarray
这道题和maximum subarray基本差不多,不过因为是乘法最大值,我们必须同时记录最大值和最小值,因为,最后的最大值是可以由最小数(一个负数)乘以另外一个负数得来的
class Solution(object):
def maxProduct(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
curMin, curMax = 1, 1
result = -sys.maxint
for num in nums:
tmpMin = min(curMin * num, curMax * num, num)
tmpMax = max(curMin * num, curMax * num, num)
curMax = tmpMax
curMin = tmpMin
result = max(curMax, result)
return result