152. 乘积最大子数组 - 力扣(LeetCode)

大佬图示:

代码

python 复制代码
# encoding = utf-8
# 开发者:Alen
# 开发时间: 21:37 
# "Stay hungry,stay foolish."

class Solution(object):
    def maxProduct(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        res = max(nums)
        curMin, curMax = 1, 1

        for n in nums:
            if n == 0:
                curMin, curMax = 1, 1
                continue
            temp = n * curMax # 防止提前修改的curMax污染curMin
            curMax = max(n * curMax, n * curMin, n)
            curMin = min(temp, n * curMin, n)
            res = max(res, curMax)
        return res
num = Solution().maxProduct([-4,-3,-2])
print(num)

结果

解题步骤:

相关推荐
Piar1231sdafa2 小时前
基于yolo13-C3k2-RVB的洗手步骤识别与检测系统实现_1
人工智能·算法·目标跟踪
a程序小傲2 小时前
中国邮政Java面试被问:Netty的FastThreadLocal优化原理
java·服务器·开发语言·面试·职场和发展·github·哈希算法
做科研的周师兄2 小时前
【MATLAB 实战】|多波段栅格数据提取部分波段均值——批量处理(NoData 修正 + 地理信息保真)_后附完整代码
前端·算法·机器学习·matlab·均值算法·分类·数据挖掘
天赐学c语言2 小时前
1.18 - 滑动窗口最大值 && 子类的指针转换为父类的指针,指针的值是否会改变
数据结构·c++·算法·leecode
甄心爱学习3 小时前
KMP算法(小白理解)
开发语言·python·算法
wen__xvn3 小时前
牛客周赛 Round 127
算法
大锦终3 小时前
dfs解决FloodFill 算法
c++·算法·深度优先
橘颂TA3 小时前
【剑斩OFFER】算法的暴力美学——LeetCode 200 题:岛屿数量
算法·leetcode·职场和发展
苦藤新鸡3 小时前
14.合并区间(1,3)(2,5)=(1,5)
c++·算法·leetcode·动态规划