力扣【动态规划】买卖股票含有冷冻期

1001-高同学

发表文章数:265

首页 » 算法 » 正文

题目链接:
https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/

注意是卖掉之后有一天的冷冻期。换句话说就是,如果想买股票,那么得提前两天把股票卖出去。

#include
using namespace std;
class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int len = prices.size();
        int dp[len][2];
        memset(dp, 0, sizeof(dp));

        dp[0][0] = 0;
        dp[0][1] = -prices[0];
        if(len == 1){
            return 0;
        }
        //第一天不持有股票:前一天没有买入,今天也没有买入;
        dp[1][0] = max(dp[0][0], dp[0][1]+prices[1]);
        //持有股票:前一天持有股票;前一天没持有股票,今天买入
        dp[1][1] = max(dp[0][1], dp[0][0]-prices[1]);

        for(int i=2; i<len; i++){
            //没有股票:前一天没有股票;前一天有股票,但是今天卖了。
            dp[i][0] = max(dp[i-1][0], dp[i-1][1]+prices[i]);
            // 持有股票:前一天持有;
            dp[i][1] = max(dp[i-1][1], dp[i-2][0]-prices[i]);
        }
        return dp[len-1][0];
    }
};

拜师教育学员文章:作者:1001-高同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《力扣【动态规划】买卖股票含有冷冻期》 发布于2022-01-28

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录