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

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

ให้ลิสต์ราคาหุ้น ซื้อขายได้เพียงครั้งเดียว (ซื้อก่อนขาย) หากำไรสูงสุด

ตัวอย่าง: [10,12,9,6,8,12] → 6 (ซื้อ 6 ขาย 12)

อัลกอริธึม One Pass

  • ติดตาม min_stock ราคาต่ำสุดที่เคยเห็น
  • แต่ละราคา: อัปเดต max_profit = max(max_profit, price - min_stock) และ min_stock = min(min_stock, price)

การนำไปใช้

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