用Python买卖股票III的最佳时间
为了解决这个问题,我们将遵循以下步骤-
n:=s的大小,m:=t的大小。通过在空格之前连接s和t来更新它们
制作一个大小为(n+1)x(m+1)的矩阵
设置dp[0,0]:=1,然后为所有行的第0列设置1,放入1
对于我在1到n范围内
如果s[i]=t[j],则
dp[i,j]:=dp[i,j]+dp[i–1,j]
dp[i,j]:=dp[i–1,j–1]
对于1到m范围内的j
返回dp[n,m]
示例
让我们看下面的实现以更好地理解-
class Solution(object):
def maxProfit(self, p):
if not p:
return 0
n = len(p)
dp = [0 for i in range(n)]
ans = 0
xmin = p[0]
for i in range(1,n):
xmin = min(xmin,p[i])
dp[i] = max(dp[i],p[i]-xmin)
ans = max(ans,dp[i])
xmax = [0 for i in range(n)]
xmax[-1] =p[-1]
tempp = 0
for i in range(n-2,-1,-1):
xmax[i] = max(xmax[i+1],p[i])
xmin = [p[-1],n]
for i in range(n-2,-1,-1):
tempp = max(tempp,xmax[i+1]-p[i+1])
ans = max(ans,dp[i]+tempp)
return ans
ob = Solution()print(ob.maxProfit([3,3,5,0,1,3,1,4]))输入值
[3,3,5,0,1,3,1,4]
输出结果
6
热门推荐
10 祝福语献给老人的话简短
11 员工对同事祝福语简短
12 送礼祝福语男性生日简短
13 财运健康成语祝福语简短
14 娘家除夕祝福语大全简短
15 新年祝同学祝福语简短
16 老公生日祝福语简短好看
17 别人复读怎么祝福语简短
18 求助短信生日祝福语简短