力扣刷题记录77.1-----309. 最佳买卖股票时机含冷冻期

目录

  • 一、题目
  • 二、代码
  • 三、运行结果


一、题目

力扣刷题记录77.1-----309. 最佳买卖股票时机含冷冻期_第1张图片
力扣刷题记录77.1-----309. 最佳买卖股票时机含冷冻期_第2张图片

二、代码

class Solution 
{
public:
    //状态0  买入与保持
    //状态1  卖出 
    //状态2  冷冻期
    //状态3  卖出  过了冷冻期
    //  i 表示天数  j  表示状态
    int maxProfit(vector<int>& prices) 
    {
        int i;
        int length=prices.size();
        vector<vector<int>> dp(length,vector<int>(4,0));
        dp[0][0]=-prices[0];
        for(i=1;i<length;i++)
        {
            dp[i][0]=max(dp[i-1][0],max(dp[i-1][2]-prices[i],dp[i-1][3]-prices[i]));
            dp[i][1]=dp[i-1][0]+prices[i];
            dp[i][2]=dp[i-1][1];
            dp[i][3]=max(dp[i-1][3],dp[i-1][2]);
        }

        return max(dp[length-1][1],max(dp[length-1][2],dp[length-1][3]));
    }
};

三、运行结果

力扣刷题记录77.1-----309. 最佳买卖股票时机含冷冻期_第3张图片

你可能感兴趣的:(leetcode,算法,动态规划)