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

results matching ""

    No results matching ""