leetcode152.乘积最大子数组

思路源自

【小白都能听懂的算法课】【力扣】【Leetcode152】乘积最大子数组|动态规划|数组

动态规划,每一步求出以当前数结尾的最大乘积和最小乘积(因为存在负数)

java 复制代码
class Solution {
    public int maxProduct(int[] nums) {
        int result=nums[0];
        int curMax = nums[0], curMin = nums[0];
        for (int i = 1; i < nums.length; i++) {
            int tempMax = curMax, tempMin = curMin;
            curMax = Math.max(Math.max(tempMax * nums[i], tempMin * nums[i]), nums[i]);
            curMin = Math.min(Math.min(tempMax * nums[i], tempMin * nums[i]), nums[i]);
            result = Math.max(result, curMax);
        }
        return result;
    }
}
相关推荐
徐凤年_16 分钟前
rog_map参数理解
算法
春日见17 分钟前
算法与数据结构----哈希表
数据结构·人工智能·算法·机器学习·自动驾驶·哈希算法·散列表
萌动的小火苗1 小时前
嵌入式开发中的栈与队列:任务调度为什么依赖数据结构
数据结构·c++·单片机·嵌入式硬件
叩码以求索1 小时前
统计按位或能得到最大值的子集数目(一)
数据结构·算法
tachibana21 小时前
hot100 数组中的第K个最大元素(215)
java·数据结构·算法·leetcode
txzrxz1 小时前
单调队列讲解
数据结构·c++·算法·单调队列
不会就选b2 小时前
算法日常・每日刷题--<快排>4
算法
Keven_112 小时前
算法札记:树状数组的用途
数据结构·算法
用户677437175812 小时前
C++函数参数传递方式详解:string、string&、const string、const string&该怎么选?
算法
cpp_25013 小时前
P1540 [NOIP 2010 提高组] 机器翻译
数据结构·c++·算法·队列·noip·洛谷题解