Advertisement

Leetcode 152. 最大乘积子数组

阅读量:
在这里插入图片描述

注意的点:

1、应结合数值的正负特性及其极值范围,开展动态规划的分析与处理
2、依据nums[i]所呈现的正负属性,实施相应的动态规划策略

动态规划解题策略

复制代码
    class Solution:
    def maxProduct(self, nums: List[int]) -> int:
        @cache
        def dp(i, j):
            if i == 0: return nums[0]
    
            if j == 0:
                if nums[i] > 0:  return max(nums[i] * dp(i-1, 0), nums[i])
                else: return max(nums[i] * dp(i-1, 1), nums[i])
            else:
                if nums[i] > 0: return min(nums[i] * dp(i-1, 1), num

全部评论 (0)

还没有任何评论哟~