714.取引手数料で株式を売買するのに最適な時期



714 Best Time Buy



714.取引手数料で株式を売買するのに最適な時期


整数の価格の配列が与えられます。i番目の要素は、i日目の特定の株式の価格であり、取引手数料を表す負でない整数の手数料です。

取引はいくつでも完了できますが、取引ごとに取引手数料を支払う必要があります。一度に複数の株式を購入することはできません(つまり、再度購入する前に株式を売却する必要があります)。

あなたが作ることができる最大の利益を返します。



例1:
入力:価格= [1、3、2、8、4、9]、料金= 2
出力:8
説明:最大の利益は次の方法で達成できます。
価格での購入[0] = 1
価格での販売[3] = 8
価格での購入[4] = 4
価格での販売[5] = 9
総利益は((8-1)-2)+((9-4)-2)= 8です。

注意:



  1. 0
  2. 0
  3. 0<= fee < 50000.

考え:

class Solution { public: int maxProfit(vector<int>& prices, int fee) { int cash = 0, hold = -prices[0] for (int i = 1 i < prices.size() i++) { cash = max(cash, hold + prices[i] - fee) hold = max(hold, cash - prices[i]) } return cash } }