动态规划算法-子数组、子串系列(数组中连续的一段):21.乘积最大子数组

题目链接:152. 乘积最大子数组(中等)

算法原理:

解法:动态规划

Java代码:

java 复制代码
/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 王洋
 * Date: 2025-10-22
 * Time: 15:56
 */
class Solution {
    //152. 乘积最大子数组
    //看完算法原理自己没写出来,但是看完吴小哲写的又找不出错,好像确实是这回事
    public int maxProduct(int[] nums) {
        int n=nums.length;
        int[] f=new int[n+1];
        int[] g=new int[n+1];
        f[0]=g[0]=1;
        int ret=Integer.MIN_VALUE;
        for(int i=1;i<=n;i++){
            int x=nums[i-1],y=f[i-1]*nums[i-1],z=g[i-1]*nums[i-1];
            f[i]=Math.max(x,Math.max(y,z));
            g[i]=Math.min(x,Math.min(y,z));
            ret=Math.max(ret,f[i]);
        }
        return ret;
    }
}
相关推荐
沐知全栈开发4 小时前
Swift 基本语法
开发语言
qq_479875434 小时前
protobuf[1]
java·开发语言
CoderYanger4 小时前
A.每日一题——3432. 统计元素和差值为偶数的分区方案
java·数据结构·算法·leetcode·1024程序员节
Geoking.4 小时前
JDK 版本与 Java 版本的关系
java·开发语言
huohuopro5 小时前
java基础深度学习 #1
java·开发语言·java基础
csbysj20205 小时前
Django 模板
开发语言
Zaralike5 小时前
Java设计模式
java·开发语言·设计模式
TL滕5 小时前
从0开始学算法——第八天(堆排序)
笔记·学习·算法·排序算法
Ayanami_Reii5 小时前
进阶数据结构-AC自动机
数据结构·算法·动态规划·字符串·ac自动机