Leetcode 123. 买卖股票的最佳时机 III (DP状态机)

详细解析链接戳这
Leetcode 123. 买卖股票的最佳时机 III (DP状态机)_第1张图片
Leetcode 123. 买卖股票的最佳时机 III (DP状态机)_第2张图片

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int n = prices.size();
        if(n == 0) return 0;
        int k = 2;
        int dp[n][k+1][2];
        memset(dp,0,sizeof(dp));
        for(int i = 0;i < n;i++){
            for(int j = 1;j <= k;j++){
                if(i == 0){
                    dp[i][j][0] = 0;
                    dp[i][j][1] = -prices[i];
                    continue;
                }
                dp[i][j][0] = max(dp[i-1][j][0],dp[i-1][j][1] + prices[i]);
                dp[i][j][1] = max(dp[i-1][j][1],dp[i-1][j-1][0] - prices[i]);
            }
        }
        return dp[n-1][2][0];
    }
};

你可能感兴趣的:(状态机)