力扣123

阅读 84

2022-01-22

题目描述

示例

代码

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int n=prices.size();
        if(n<=1) return 0;
        vector<int> dp(5,0);
        //0:不操作;1:买入;2:卖出;3:买入;4:卖出
        dp[1]=-prices[0];
        dp[3]=-prices[0];
        for(int i=1;i<n;i++)
        {
            dp[1]=max(dp[1],-prices[i]);
            dp[2]=max(dp[2],dp[1]+prices[i]);
            dp[3]=max(dp[3],dp[2]-prices[i]);
            dp[4]=max(dp[4],dp[3]+prices[i]);
        }
        return dp[4];
    }
};

精彩评论(0)

0 0 举报