股票含冷冻期
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
if len(prices)<=1:
return 0
else:
dp=[[0]*2 for _ in range(len(prices))]
dp[0][0]=-prices[0]
dp[0][1]=0
dp[1][0]=max(dp[0][0],dp[0][1]-prices[1])
dp[1][1]=max(dp[0][1],dp[0][0]+prices[1])
for i in range(2,len(prices)):
dp[i][0]=max(dp[i-2][1]-prices[i],dp[i-1][0])
dp[i][1]=max(dp[i-1][1],dp[i-1][0]+prices[i])
return dp[len(prices)-1][1]
股票含手续费
def maxProfit(self, prices, fee):
"""
:type prices: List[int]
:type fee: int
:rtype: int
"""
dp=[[0]*2 for _ in range(len(prices))]
dp[0][0]=-prices[0]-fee
dp[0][1]=0
for i in range(1,len(prices)):
dp[i][0]=max(dp[i-1][1]-prices[i]-fee,dp[i-1][0])
dp[i][1]=max(dp[i-1][1],dp[i-1][0]+prices[i])
return dp[len(prices)-1][1]