zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【LeetCode】152.乘积最大子数组

LeetCode数组 最大 乘积
2023-09-14 09:13:25 时间

1. 题目

在这里插入图片描述

2.分析

在这里插入图片描述
可以得到递推公式如下:
在这里插入图片描述

3.代码

class Solution:
    def maxProduct(self, nums: List[int]) -> int:
        dmax = [0]* len(nums)
        dmin = copy.deepcopy(dmax)
        # print(dmin)
        
        dmax[0] = dmin[0] = nums[0]
        for i in range(1,len(nums)):
            cur = nums[i]
            dmax[i] = max(dmax[i-1] * cur,dmin[i-1] * cur ,cur)
            # print(dmax)
            dmin[i] = min(dmin[i-1] * cur,dmax[i-1]* cur, cur)
        
        return max(dmax)