该程序查找通过使用Python多次在股票市场上购买可获得的最大利润

假设我们有一个按时间顺序表示公司股票价格的价格列表,我们必须找到通过多次买卖该股票可以赚取的最大利润。我们必须记住,我们必须先购买才可以出售。

因此,如果输入就像价格= [10、50、30、40、60],那么输出将是70,因为我们可以在10买,在50卖,在30买,然后在60卖。

为了解决这个问题,我们将遵循以下步骤-

  • prev_price:=无限

  • 利润:= 0

  • 对于价格中的每个p,

    • 利润:=利润+ p-prev_price

    • 如果p> prev_price,则

    • prev_price:= p

    • 回报利润

    让我们看下面的实现以更好地理解-

    示例

    class Solution:
       def solve(self, prices):
          prev_price = float("inf")
          profit = 0
          for p in prices:
             if p > prev_price:
                profit += p - prev_price
                prev_price = p
          return profit
    ob = Solution()print(ob.solve([10, 50, 30, 40, 60]))

    输入值

    [10, 50, 30, 40, 60]

    输出结果

    70
    猜你喜欢