动态规划算法-简单多状态dp问题:15.买卖股票的最佳时机含冷冻期

题目链接:309. 买卖股票的最佳时机含冷冻期(中等)

算法原理:

解法:动态规划

Java代码:

java 复制代码
/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 王洋
 * Date: 2025-10-20
 * Time: 20:18
 */
class Solution {
    //309.最佳买卖股票时机含冷冻期
    //吴小哲跟我写的一样
    //看完算法原理后自己写的,没注意到这个不用创建虚拟节点,第一次执行的时候,下标的映射关系错了
    public int maxProfit(int[] prices) {
        int n=prices.length;
        int[][] dp=new int[n][3];
        dp[0][0]=-prices[0];
        for(int i=1;i<n;i++){
            dp[i][0]=Math.max(dp[i-1][0],dp[i-1][1]-prices[i]);
            dp[i][1]=Math.max(dp[i-1][1],dp[i-1][2]);
            dp[i][2]=dp[i-1][0]+prices[i];
        }
        return Math.max(dp[n-1][1],dp[n-1][2]);
    }
}
相关推荐
山甫aa6 分钟前
JavaWeb后端开发学习手册
java·开发语言·数据库·学习·mysql·springboot·web
zlinear数据采集卡10 分钟前
数据采集卡从入门到精通(42):项目实战三——设备预测性维护系统,从布点到预警
开发语言·单片机·嵌入式硬件·安全·fpga开发
土司大王12 分钟前
LeetCode hot100——相交链表
算法·leetcode·链表
土司大王14 分钟前
LeetCode hot100——回文链表
算法·leetcode·链表
csdn_aspnet14 分钟前
C# 高效便利的处理数据
开发语言·windows·c#
Chester_199921 分钟前
CSP202209.B何以包邮?
c语言·开发语言
caimouse33 分钟前
ReactOS 窗口系统分析(13):滚动条 — scrollbar.c + scrollex.c
c语言·开发语言·reactos
Sagittarius_A*34 分钟前
【好靶场】PHP反序列化入门练习2
开发语言·web安全·信息安全·php·代码审计·反序列化
sel_939 分钟前
【Docker】Docker 安装与使用详解:从零搭建到日常实战
人工智能·深度学习·算法·docker
NoteStream1 小时前
MATLAB绘制带置信区间的折线散点图(科研绘图模板)
开发语言·matlab