力扣动态规划-12【算法学习day.106】

前言

###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.乘积最大子数组

题目链接: 152. 乘积最大子数组 - 力扣(LeetCode)

题面:

代码:

java 复制代码
class Solution {
    public int maxProduct(int[] nums) {
        int n = nums.length;
        int[] flag1 = new int[n];
        int[] flag2 = new int[n];
        flag1[0] = nums[0];
        flag2[0] = nums[0];
        int max = nums[0];
        for(int i = 1;i<n;i++){
            flag1[i] = Math.max(Math.max(flag1[i-1]*nums[i],flag2[i-1]*nums[i]),nums[i]);
            flag2[i] = Math.min(Math.min(flag1[i-1]*nums[i],flag2[i-1]*nums[i]),nums[i]);
            if(flag1[i]>max)max = flag1[i];
        }
        return max;
        }
}

后言

上面是动态规划相关的习题,共勉

相关推荐
坚持编程的菜鸟1 天前
模拟实现memmove
c语言·算法·模拟实现memmove
码农颜1 天前
5.4.1 锁分类
java·数据库·mysql
wabs6661 天前
关于图论【最短路径之Dijkstra算法(堆优化版)|卡码网47.参加科学大会的思考】
数据结构·算法·图论·优先级队列·邻接表·小顶堆·卡码网
坚持编程的菜鸟1 天前
编写判断大小端程序
c语言·算法·判断大小端
papaofdoudou1 天前
判断排列逆序奇偶性的乘积判别法(范德蒙德符号法)
人工智能·算法
linux-hzh1 天前
百日算法修炼 · Day 03
java·算法
问商十三载1 天前
RAG 检索效果差怎么排查?2026 五层诊断法完整指南
开发语言·人工智能·windows·python·算法
不负岁月无痕1 天前
简单理解操作系统结构
java·linux·c语言·开发语言·c++·面试
mister_guo1 天前
Java线程池参数应该如何设置(ThreadPoolExecutor)
java
余额瞒着我当琳1 天前
C++模板初阶与STL初探
android·java·c++