Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm kiếm lợi nhuận tối đa mà chúng tôi có thể nhận được bằng cách mua nhiều lần trên thị trường chứng khoán bằng Python

Giả sử chúng ta có một danh sách giá đại diện cho giá cổ phiếu của một công ty theo trình tự thời gian, chúng ta phải tìm lợi nhuận tối đa mà chúng ta có thể kiếm được từ việc mua và bán cổ phiếu đó bất kỳ số lần nào. Chúng ta phải ghi nhớ rằng chúng ta phải mua trước khi có thể bán nó.

Vì vậy, nếu đầu vào là giá =[10, 50, 30, 40, 60], thì đầu ra sẽ là 70, vì Chúng ta có thể mua ở mức 10, bán ở mức 50, mua ở mức 30 và bán ở mức 60.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • pres_price:=infinity
  • lợi nhuận:=0
  • đối với mỗi p trong giá, hãy thực hiện
    • nếu p> giá_trị_đầu_phí, thì
      • lợi nhuận:=lợi nhuận + p - giá_phí_đầu_phí
    • pres_price:=p
  • lợi nhuận trở lại

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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