是否计划通过购买和出售Python股票来找到最大的利润?
假设我们有一个按时间顺序排列的公司股价列表,我们必须找到可以通过买卖股票获得的最大利润。我们必须在买入之前买入,并且必须在卖出股票后等待一天才能再次买入。
因此,如果输入就像价格= [2、6、9、4、11],那么输出将是11,因为我们可以在2买入,然后在6卖出,等待一天,然后在4买入,然后以11。
为了解决这个问题,我们将按照以下步骤操作:
s:= 0
b:=-无穷大
对于价格范围为0的i,
s:= s和(temp + price [i-1])的最大值
温度:= b
b:= b和(s-价格[i])的最大值
如果我不为零,则
返回s和(b +价格的最后一个元素)的最大值
让我们看下面的实现以更好地理解:
示例
class Solution:def solve(self, prices):
s = 0
b = float("-inf")
for i in range(len(prices)):
temp = b
b = max(b, s - prices[i])
if i:
s = max(s, temp + prices[i - 1])
return max(s, b + prices[-1])
ob = Solution()prices = [2, 6, 9, 4, 11]
print(ob.solve(prices))
输入值
[2, 6, 9, 4, 11]
输出结果
11
以上是 是否计划通过购买和出售Python股票来找到最大的利润? 的全部内容, 来源链接: utcz.com/z/321578.html