152. 乘积最大子数组


思路

maxs:记录当前位置最大乘积

mins:记录当前位置最小乘积,因为当前位置的最大乘积 有可能是i-1的最小乘积*当前位置

如i-1最小乘积为-3,最大乘积为4 i当前位置值为-2 则

dp[i]最大乘积自然是-3*(-2)=6

python 复制代码
class Solution(object):
    def maxProduct(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if len(nums)==1:
            return nums[0]
        maxs =[0]*len(nums)
        mins =[0]*len(nums)
        dp =[0]*len(nums)
        maxs[0] ,mins[0],dp[0]= nums[0],nums[0],nums[0]
        for i in range(1,len(nums)):
            maxs[i]=max(maxs[i-1]*nums[i],mins[i-1]*nums[i],nums[i])
            mins[i]=min(maxs[i-1]*nums[i],mins[i-1]*nums[i],nums[i])
            dp[i]=maxs[i]

        return max(dp)
相关推荐
郝学胜-神的一滴1 分钟前
干货版《算法导论》03:动态数组 × 链表的极致平衡艺术
java·数据结构·c++·python·算法·链表
2301_766283441 分钟前
如何在 Go 中使用 gocql 执行本地 CQL 脚本文件
jvm·数据库·python
dFObBIMmai1 分钟前
MongoDB防注入攻击指南
jvm·数据库·python
li星野2 分钟前
栈与队列通关八题:从括号匹配到接雨水,手撕LeetCode高频题(Python + C++)
c++·python·leetcode
彳亍1012 分钟前
如何解决Oracle启动ORA-00119错误_网络服务名与listener相关性
jvm·数据库·python
weixin_459753944 分钟前
c++怎么编写多线程安全的跨平台文件日志库_无锁队列与异步IO【附源码】
jvm·数据库·python
夏恪5 分钟前
如何用 IDBKeyRange 范围匹配检索特定区间的本地数据
jvm·数据库·python
风筝在晴天搁浅5 分钟前
字节 LeetCode CodeTop 912.排序数组
算法·leetcode
2301_766283446 分钟前
如何防止SQL拼接漏洞_使用PDO对象实现安全的SQL交互
jvm·数据库·python
u0110225129 分钟前
如何解决Oracle 12c以上版本的ORA-65096_C##公共用户前缀限制
jvm·数据库·python