美文网首页
152. Maximum Product Subarray

152. Maximum Product Subarray

作者: April63 | 来源:发表于2018-05-15 10:39 被阅读0次

动态规划的做法,转移方程真的很难写
我至今还是糊糊涂涂的

class Solution(object):
    def maxProduct(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if len(nums) == 0:
            return 0
        if len(nums) == 1:
            return nums[0]
        #动态规划
        maxlast = nums[0]
        minlast = nums[0]
        maxproduct = nums[0]
        for i in range(1,len(nums)):
            maxcurr = max(nums[i], max(maxlast*nums[i], minlast*nums[i]))
            mincurr = min(nums[i], min(maxlast*nums[i], minlast*nums[i]))
            minlast = mincurr
            maxlast = maxcurr
            maxproduct = max(maxcurr, maxproduct)
        return maxproduct

相关文章

网友评论

      本文标题:152. Maximum Product Subarray

      本文链接:https://www.haomeiwen.com/subject/ahdedftx.html