买卖股票的最佳时期含冷冻期(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;
    }
};
相关推荐
嘟嘟w3 分钟前
垃圾回收算法
算法
胖咕噜的稞达鸭7 分钟前
算法入门:专题二分查找算法 模板总结 题目练手 :排序数组中查找元素的第一个和最后一个位置 第一个错误的版本 查找x的平方根 搜索插入位置 山脉数组的封顶索引
c语言·c++·算法·leetcode
松涛和鸣9 分钟前
21、单向链表完整实现与核心技巧总结
linux·c语言·数据结构·算法·链表
TL滕21 分钟前
从0开始学算法——第三天(数据结构的操作)
数据结构·笔记·学习·算法
得贤招聘官24 分钟前
第六代AI面试智能体:重塑招聘流程的高效解决方案
人工智能·面试·职场和发展
Aaron158831 分钟前
基于FPGA实现卷积方法比较分析
arm开发·算法·fpga开发·硬件架构·硬件工程·射频工程·基带工程
AndrewHZ44 分钟前
【图像处理基石】什么是分水岭算法?
图像处理·算法·计算机视觉·图像分割·cv·形态学分割
前端小L1 小时前
回溯算法专题(五):去重与剪枝的双重奏——攻克「组合总和 II」
算法·剪枝
TL滕1 小时前
从0开始学算法——第三天(数据结构的多样性)
数据结构·笔记·学习·算法
V1ncent Chen1 小时前
人工智能的基石之一:算法
人工智能·算法