动态规划算法-简单多状态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]);
    }
}
相关推荐
木卫二号Coding11 分钟前
Python-文件拷贝+文件重命名+shutil+记录
开发语言·python
leaves falling11 分钟前
冒泡排序(基础版+通用版)
数据结构·算法·排序算法
老鼠只爱大米16 分钟前
LeetCode算法题详解 56:合并区间
leetcode·并查集·合并区间·区间合并·线性扫描·算法面试
bubiyoushang88829 分钟前
基于Q-learning的路径规划MATLAB仿真程序实现
开发语言·matlab
C雨后彩虹34 分钟前
无向图染色
java·数据结构·算法·华为·面试
FAFU_kyp39 分钟前
Rust 结构体(struct)
开发语言·后端·rust
坚持就完事了41 分钟前
扫描线算法
算法
努力写代码的熊大42 分钟前
深入探索C++关联容器:Set、Map、Multiset与Multimap的终极指南及底层实现剖析
开发语言·c++
鱼跃鹰飞44 分钟前
Leetcode尊享面试100题:252. 会议室
算法·leetcode·面试
程序员-King.1 小时前
二分查找——算法总结与教学指南
数据结构·算法