【力扣-每日一题】714. 买卖股票的最佳时机含手续费

【力扣-每日一题】714. 买卖股票的最佳时机含手续费_第1张图片

class Solution {
public:
    int maxProfit(vector<int>& prices, int fee) {
        //[i][0]-不持有   [i][1]-持有
        int m=prices.size();
        vector<vector<int>> dp(m,vector<int>(2));
        dp[0][0]=0;     //初始状态
        dp[0][1]=-prices[0];
        for(int i=1;i<m;i++)
            {
                dp[i][0]=max(dp[i-1][0],dp[i-1][1]+prices[i]-fee);  //当前不持有,结果来自上一个不持有,或者上一个持有变为不持有
                dp[i][1]=max(dp[i-1][1],dp[i-1][0]-prices[i]);  //当前持有,结果来自上一个持有,或者上一个不持有变持有
            }
        return max(dp[m-1][0],dp[m-1][1]);
        //可以使用滚动变量优化内存
    }
};

你可能感兴趣的:(练题杂记,leetcode,算法)