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 trên thị trường chứng khoán một lầ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 đó chỉ một lần. 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, 12, 9, 6, 8, 12], thì đầu ra sẽ là 6, vì chúng ta có thể mua ở mức 6 và bán ở mức 12.

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

  • max_profit:=0
  • min_stock:=infinity
  • đối với mỗi mức giá trong các mức giá, hãy thực hiện
    • max_profit:=max_profit và (price - min_stock)
    • min_stock:=tối thiểu của min_stock và giá
  • trả lại max_profit

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):
      max_profit = 0
      min_stock = float('inf')
      for price in prices:
         max_profit = max(max_profit, price - min_stock)
         min_stock = min(min_stock, price)
      return max_profit
ob = Solution()
print(ob.solve([10, 12, 9, 6, 8, 12]))

Đầu vào

[10, 12, 9, 6, 8, 12]

Đầu ra

6