题解 | #买卖股票的最好时机(三)#
买卖股票的最好时机(三)
http://www.nowcoder.com/practice/4892d3ff304a4880b7a89ba01f48daf9
对于股票问题我们只需要得到所有的状态转移方程即可
由于题目要求只能交易两次
我们可以得到buy1,即第一次购买股票,sell1,第一次出售股票,buy2,第一次交易完成后第二次购买股票,sell2,第二次出售股票
class Solution:
def maxProfit(self , prices: List[int]) -> int:
# write code here
n=len(prices)
buy1=buy2=-prices[0]
sell1=sell2=0
for i in range(1,n):
buy1=max(buy1,-prices[i])
sell1=max(sell1,buy1+prices[i])
buy2=max(buy2,sell1-prices[i])
sell2=max(sell2,buy2+prices[i])
return sell2