ให้ลิสต์ราคาหุ้นตามลำดับเวลา ซื้อขายได้หลายครั้ง (ต้องซื้อก่อนขาย) หากำไรสูงสุด
ตัวอย่าง: [10,50,30,40,60] → 70 (ซื้อ10ขาย50, ซื้อ30ขาย60)
อัลกอริธึม Greedy
- สะสมกำไรทุกครั้งที่ราคาวันนี้ > ราคาเมื่อวาน
- เทียบเท่ากับซื้อที่谷底 ขายที่ยอดเขา ทุกคู่
การนำไปใช้
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])) # 70