Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm lợi nhuận tối đa mua bán cổ phiếu nhiều lần trong Python


Cho danh sách prices biểu diễn giá cổ phiếu theo thứ tự thời gian. Tìm lợi nhuận tối đa có thể đạt được từ việc mua và bán cổ phiếu bất kỳ số lần nào. Phải mua trước khi bán.

Ví dụ, prices = [10, 50, 30, 40, 60], đầu ra là 70, vì mua ở 10 bán ở 50, mua ở 30 bán ở 60.

Các bước giải quyết:

  • prev_price := infinity.
  • profit := 0.
  • Duyệt từng giá p trong prices:
    • Nếu p > prev_price, profit += p - prev_price.
    • prev_price = p.
  • Trả về profit.

Ví dụ minh họa

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]))

Đầu vào

[10, 50, 30, 40, 60]

Đầu ra

70