[力扣每日一題]714. 買賣股票的最佳時機含手續費

喲呵咯遊發表於2020-12-17

[力扣每日一題]714. 買賣股票的最佳時機含手續費

給定一個整數陣列 prices,其中第 i 個元素代表了第 i 天的股票價格 ;非負整數 fee 代表了交易股票的手續費用。

你可以無限次地完成交易,但是你每筆交易都需要付手續費。如果你已經購買了一個股票,在賣出它之前你就不能再繼續購買股票了。

返回獲得利潤的最大值。

注意:這裡的一筆交易指買入持有並賣出股票的整個過程,每筆交易你只需要為支付一次手續費。

原題連結

思路:DP
在這裡插入圖片描述

class Solution {
public:
    int maxProfit(vector<int>& prices, int fee) {
        int  n=prices.size();
        vector<vector<int>>dp(n,vector<int>(2));
        dp[0][0]=0,dp[0][1]=-prices[0];
        for(int  i=1;i<n;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[n-1][0];
    }
};

相關文章