Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหากำไรสูงสุดที่เราจะได้รับจากการซื้อในตลาดหุ้นครั้งเดียวใน Python


สมมติว่าเรามีรายการราคาที่แสดงราคาหุ้นของบริษัทตามลำดับเวลา เราต้องหากำไรสูงสุดที่เราสามารถทำได้จากการซื้อและขายหุ้นนั้นเพียงครั้งเดียว เราต้องจำไว้ว่าเราต้องซื้อก่อนจึงจะขายได้

ดังนั้น หากอินพุตเป็นเหมือนราคา =[10, 12, 9, 6, 8, 12] ผลลัพธ์จะเป็น 6 เนื่องจากเราสามารถซื้อที่ 6 และขายที่ 12

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • max_profit :=0
  • min_stock :=อินฟินิตี้
  • สำหรับแต่ละราคาในราคา ทำ
    • max_profit :=สูงสุดของ max_profit และ (ราคา - min_stock)
    • min_stock :=ขั้นต่ำของ min_stock และราคา
  • คืน max_profit

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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

อินพุต

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

ผลลัพธ์

6