class Solution:
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
if not prices or len(prices) == 1:
return 0
n = len(prices)
buy = [0] * n # 最后结尾是buy
buy[0] = -prices[0]
sell = [0] * n
for i in range(1, n): # buy[i]表示在i以前是以buy结尾
buy[i] = max(buy[i - 1], sell[i - 2] - prices[i])
sell[i] = max(sell[i - 1], buy[i - 1] + prices[i])
return sell[-1]