Python程式:求解買賣股票最大利潤
假設我們有一個名為nums的數字列表,它按時間順序表示公司的股票價格。我們最多可以每天購買一股股票,但您可以持有多支股票,並且可以在任意多天賣出股票。返回您可以獲得的最大利潤。
因此,如果輸入類似於nums = [3, 4, 7, 3, 5],則輸出將為9,因為我們可以在3和4的價格買入股票,並在7的價格賣出。然後再次以3的價格買入,以5的價格賣出。總利潤 (7 - 3) + (7 - 4) + (5 - 3) = 9。
為了解決這個問題,我們將遵循以下步驟:
- ans := 0
- 當nums不為空時,執行以下操作:
- top := 從nums中刪除最後一個元素
- 當nums不為空且top > nums的最後一個元素時,執行以下操作:
- ans := ans + (top - nums的最後一個元素)
- 從nums中刪除最後一個元素
- 返回ans
示例
讓我們看看下面的實現,以便更好地理解:
def solve(nums): ans = 0 while nums: top = nums.pop() while nums and top > nums[-1]: ans += top - nums.pop() return ans nums = [3, 4, 7, 3, 5] print(solve(nums))
輸入
[3, 4, 7, 3, 5]
輸出
9
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP