对于股票问题我们只需要得到所有的状态转移方程即可

由于题目要求只能交易两次

我们可以得到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