题目
解答
代码
class Solution(object):
def maxProfit(self, prices):
n=len(prices)
if n>=1:
max_k = 2
p1 = [[0] * (max_k + 1) for _ in range(n)]
p0 = [[0] * (max_k + 1) for _ in range(n)]
for i in range(n):
for k in range(max_k,0,-1):
if i-1==-1:
p0[i][k] = 0
p1[i][k] = -prices[i]
continue
p0[i][k] = max(p0[i-1][k], p1[i-1][k] + prices[i])
p1[i][k] = max(p1[i-1][k], p0[i-1][k-1] - prices[i])
return p0[n-1][max_k]
else:
return 0
思路
参考解法
使用动态规划