Python程式:求解股票市場多次交易的最大利潤
假設我們有一列價格,代表公司股票按時間順序排列的價格,我們需要找到透過多次買賣股票可以獲得的最大利潤。記住,必須先買入才能賣出。
因此,如果輸入類似 prices = [10, 50, 30, 40, 60],則輸出為 70,因為我們可以以 10 買入,以 50 賣出,以 30 買入,以 60 賣出。
為了解決這個問題,我們將遵循以下步驟:
- prev_price := 無窮大
- profit := 0
- 對於 prices 中的每個 p,執行:
- 如果 p > prev_price,則
- profit := profit + p - prev_price
- prev_price := p
- 如果 p > prev_price,則
- 返回 profit
讓我們看下面的實現,以便更好地理解:
示例
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]))輸入
[10, 50, 30, 40, 60]
輸出
70
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP