import sys
class Solution(object):
    def maxProfit(self, prices):
        """
        :type prices: List[int]
        :rtype: int
        """
        if not prices:return 0
 
        mp = [[[0,0]for _ in range(3)]for _ in range(len(prices))]
        mp[0][0][0], mp[0][0][1] = 0,-prices[0]
        mp[0][1][0], mp[0][1][1] = -sys.maxsize,-sys.maxsize
        mp[0][2][0], mp[0][2][1] = -sys.maxsize,-sys.maxsize
 
        for i in range(1,len(prices)):
            mp[i][0][0] = mp[i-1][0][0]
            mp[i][0][1] = max(mp[i-1][0][1],mp[i-1][0][0]-prices[i])
 
            mp[i][1][0] = max(mp[i - 1][1][0], mp[i - 1][0][1] + prices[i])
            mp[i][1][1] = max(mp[i - 1][1][1], mp[i - 1][1][0] - prices[i])
 
            mp[i][2][0] = max(mp[i - 1][2][0], mp[i - 1][1][1] + prices[i])
 
        end = len(prices) - 1
        print( max(mp[end][0][0],mp[end][1][0],mp[end][2][0]))
这个通过率100