劍指 Offer 63. 股票的最大利潤-Python題解
假設把某股票的價格按照時間先後順序儲存在陣列中,請問買賣該股票一次可能獲得的最大利潤是多少?
示例 1:
輸入: [7,1,5,3,6,4]
輸出: 5
解釋: 在第 2 天(股票價格 = 1)的時候買入,在第 5 天(股票價格 = 6)的時候賣出,最大利潤 = 6-1 = 5 。
注意利潤不能是 7-1 = 6, 因為賣出價格需要大於買入價格。
示例 2:
輸入: [7,6,4,3,1]
輸出: 0
解釋: 在這種情況下, 沒有交易完成, 所以最大利潤為 0。
限制:
0 <= 陣列長度 <= 10^5
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/gu-piao-de-zui-da-li-run-lcof
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
class Solution:
def maxProfit(self, prices: List[int]) -> int:
# 當我們掃描到第i個位置的時候,只需要知道前i-1個位置的最小值就能計算當前位置賣的時候的最大值
# 我們知道當前位置賣的最大值,就能知道買賣該股票一次可能獲得的最大值
if len(prices) == 0:
return 0
cur_min = -1
for index,price in enumerate(prices):
if cur_min > price or cur_min == -1:
cur_min = price
# print(cur_min, "--")
# print(price, "==")
# print(price-cur_min, "+++")
prices[index] = price - cur_min
return max(prices)
相關文章
- 劍指Offer題解合集
- Leetcode 題解系列 -- 股票的最大利潤(動態規劃)LeetCode動態規劃
- [劍指offer題解][Java]佇列的最大值/滑動視窗的最大值Java佇列
- 劍指offer-例題 連續子陣列的最大和陣列
- 劍指offer面試題12 列印1到最大的n位數面試題
- 【劍指offer】連續子陣列的最大和陣列
- 劍指offer刷題記錄
- 劍指 Offer 59 - II. 佇列的最大值佇列
- 《劍指offer》JAVA題解,LeetCode評測JavaLeetCode
- 劍指 Offer 42.連續子陣列的最大和陣列
- 劍指Offer-連續子陣列中的最大和陣列
- 劍指Offer:JZ30-連續子陣列最大和(解題思路+Java程式碼)陣列Java
- 【劍指offer】字串的排列字串
- [劍指offer] JAVA版題解(完整版)更新中。。。Java
- 《劍指Offer》- 連續子陣列的最大和或最小和陣列
- leetcode *劍指 Offer 47. 禮物的最大價值LeetCode
- 劍指 Offer 列印從1到最大n位數c++C++
- GitHub#algorithm#:《劍指offer》 的50道面試題GithubGo面試題
- 【劍指offer】【2】字串的空格字串
- 【劍指offer】字串的組合字串
- 劍指Offer系列刷題筆記彙總筆記
- 【劍指offer】讓抽象問題具體化抽象
- 「劍指offer」27道Mybatis面試題含解析MyBatis面試題
- 劍指offer-JavaScript版JavaScript
- 【劍指offer】左旋轉字串字串
- 劍指offer中幾道演算法題的思考演算法
- 劍指offer面試題11 數值的整數次方面試題
- 劍指 Offer 38. 字串的排列字串
- 劍指Offer 表示數值的字串字串
- 【劍指offer】樹的子結構
- LeetCode-劍指Offer刷題記錄LeetCode
- 劍指offer面試題(41-50)——java實現面試題Java
- 劍指 offer(1) -- 陣列篇陣列
- Leetcode劍指offer(八)LeetCode
- 【劍指offer】字串轉整數字串
- ✏️ JavaScript版 | 10大專題 | 劍指offer刷題筆記 ✏️JavaScript筆記
- 劍指offer——包含min函式的棧函式
- 《劍指offer》:[54]表示數值的字串字串