714. 买卖股票的最佳时机含手续费(dp)

714. 买卖股票的最佳时机含手续费

 

dp[i][0]表示手上没有股票,一个是之前没有股票,一个是之前有股票然后卖掉了

dp[i][1]表示手上有股票,一个是之前有股票,一个是之前没有股票,然后买了

 

class Solution {
public:
    int maxProfit(vector<int>& prices, int fee) {
            if(prices.size()==1)
                return 0;
            int dp[prices.size()+10][2];
            dp[0][0]=0;//第一天没买股票花了0
            dp[0][1]=-prices[0];//第一天买股票花费这么多
            for(int i = 1;i<prices.size();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 dp[prices.size()-1][0];
    }
};

 

posted @ 2020-06-02 21:47  branna  阅读(184)  评论(0)    收藏  举报