卖出 +
买入 -
最后没有持有
初始化
dp[0][0] = 0
dp[0][1] = -prices[0]
两种状态:第i步没有持有股票,或者持有股票
dp[i][0]=max{dp[i−1][0],dp[i−1][1]+prices[i]}
dp[i][1]=max{dp[i−1][1],dp[i−1][0]−prices[i]}
class Solution:
def maxProfit(self, prices: List[int]) -> int:
k = len(prices)
#初始化
dp_i_0 = 0
dp_i_1 = -prices[0]
for i in range(1,k):
dp_i_0 = max(dp_i_0, dp_i_1 + prices[i]);
dp_i_1 = max(dp_i_1, dp_i_0 - prices[i]);
return dp_i_0