思路
两种状态之间的转换,购买的时候考虑费用即可
code
func maxProfit(prices []int, fee int) int {
cash, hold := 0, -prices[0]
for i := 1; i < len(prices); i++ {
cash = max(cash, hold+prices[i]-fee)
hold = max(hold, cash-prices[i])
}
return cash
}
func max(x, y int) int {
if x > y {
return x
}
return y
}
更多内容请移步我的repo:https://github.com/anakin/golang-leetcode