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