題目描述
給定一個整數(shù)數(shù)組 prices哎垦,其中第 i 個元素代表了第 i 天的股票價格 ;非負整數(shù) fee 代表了交易股票的手續(xù)費用。
你可以無限次地完成交易,但是你每次交易都需要付手續(xù)費躏仇。如果你已經(jīng)購買了一個股票恋脚,在賣出它之前你就不能再繼續(xù)購買股票了腺办。
返回獲得利潤的最大值。
示例 1:
輸入: prices = [1, 3, 2, 8, 4, 9], fee = 2
輸出: 8
解釋: 能夠達到的最大利潤:
在此處買入 prices[0] = 1
在此處賣出 prices[3] = 8
在此處買入 prices[4] = 4
在此處賣出 prices[5] = 9
總利潤: ((8 - 1) - 2) + ((9 - 4) - 2) = 8.
解法
有如下遞推關(guān)系式:
在交易結(jié)束時扣除手續(xù)費
class Solution:
def maxProfit(self, prices: List[int], fee: int) -> int:
if not prices:
return 0
i0,i1=0,-prices[0]
for i in range(1,len(prices)):
i0,i1=max(i0,i1+prices[i]-fee),max(i1,i0-prices[i])
return i0