Your are given an array of integers prices , for which the i -th element is the price of a given stock on day i ; and a non-negative integer fee representing a transaction fee.
You may complete as many transactions as you like, but you need to pay the transaction fee for each transaction. You may not buy more than 1 share of a stock at a time (ie. you must sell the stock share before you buy again.)
Return the maximum profit you can make.
Example 1:
Input: prices = [1, 3, 2, 8, 4, 9], fee = 2 Output: 8 Explanation: The maximum profit can be achieved by:
Note:
想法如下
- 可以沿用 122. Best Time to Buy and Sell Stock II 的想法,但要把 fee 考慮進來
- 用 cash 表示買入股票後,手上的現金
- 用 profit 表示目前手上的現金,也就是最後的獲利
- 歷遍 prices,計算今天股票要不要交易,cash 和 profit 的變化,取最大值
Java(參考解答)
Kotlin
沒有留言:
張貼留言