买卖股票的最佳时期含冷冻期(leetcode)

个人主页:Lei宝啊

愿所有美好如期而遇


也就有这样的状态转移方程:

  • 买入:dp[i][0] = max(dp[i-1][1] - prices[i], dp[i-1][0]);
  • 可买入:dp[i][1] = max(dp[i-1][1], dp[i-1][2]);
  • 冷冻期:dp[i][2] = dp[i-1][0] + prices[i];
cpp 复制代码
class Solution 
{
public:
    int maxProfit(vector<int>& prices) 
    {
        vector<vector<int>> dp(prices.size(), vector<int>(3));
        dp[0][0] = -prices[0];

        for(int i=1; i<prices.size(); i++)
        {
            dp[i][0] = max(dp[i-1][1] - prices[i], dp[i-1][0]);
            dp[i][1] = max(dp[i-1][1], dp[i-1][2]);
            dp[i][2] = dp[i-1][0] + prices[i];
        }

        int ret = max(dp[prices.size()-1][1], dp[prices.size()-1][2]);
        return ret;
    }
};
相关推荐
浅念同学2 小时前
算法-常见数据结构设计
java·数据结构·算法
UndefindX2 小时前
PAT甲级1006 :Sign In and Sign Out
数据结构·算法
T风呤5 小时前
学生管理系统(通过顺序表,获取连续堆区空间实现)
算法
stackY、6 小时前
【Linux】:程序地址空间
linux·算法
心死翼未伤6 小时前
【MySQL基础篇】多表查询
android·数据结构·数据库·mysql·算法
Orion嵌入式随想录7 小时前
算法训练 | 图论Part1 | 98.所有可达路径
算法·深度优先·图论
西西,正在减肥7 小时前
【leetcode52-55图论、56-63回溯】
算法
Beast Cheng7 小时前
07-7.1.1 查找的基本概念
数据结构·笔记·考研·算法·学习方法
DogDaoDao7 小时前
LeetCode 算法:二叉树中的最大路径和 c++
c++·算法·leetcode·二叉树·二叉树路径
望舒_2337 小时前
【算法专题】双指针算法
算法