用 Python 编写程序,找出在股票市场上多次买入可以获得的最大利润

pythonserver side programmingprogramming更新于 2026/1/8 21:32:17

假设我们有一个按时间顺序排列的代表某家公司股票价格的价格列表,我们必须找出通过多次买入和卖出该股票可以获得的最大利润。我们必须记住,我们必须先买,然后才能卖。

因此,如果输入为 prices = [10, 50, 30, 40, 60],则输出将为 70,因为我们可以以 10 买入,以 50 卖出,以 30 买入,以 60 卖出。

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

  • prev_price := infinity
  • profit := 0
  • 对于 prices 中的每个 p,执行
    • if p > prev_price,然后
      • 利润 := 利润 + p - prev_price
    • prev_price := p
  • 返回 profit

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

示例

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

相关文章


有用资源