劍指 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)
相關文章
- Leetcode 題解系列 -- 股票的最大利潤(動態規劃)LeetCode動態規劃
- JZ-075-股票的最大利潤
- 劍指Offer題解合集
- [劍指offer題解][Java]佇列的最大值/滑動視窗的最大值Java佇列
- 劍指offer-例題 連續子陣列的最大和陣列
- 《劍指offer》JAVA題解,LeetCode評測JavaLeetCode
- 53. 最大子序和(劍指 Offer 42)
- leetcode *劍指 Offer 47. 禮物的最大價值LeetCode
- 劍指Offer 47. 禮物的最大價值(Medium)
- 劍指offer(59)——滑動視窗的最大值
- 劍指 Offer 59 - II. 佇列的最大值佇列
- 劍指offer第41~50題
- 劍指offer刷題記錄
- 劍指OFFER
- 劍指Offer:JZ30-連續子陣列最大和(解題思路+Java程式碼)陣列Java
- 力扣 - 劍指 Offer 47. 禮物的最大價值力扣
- 劍指Offer-連續子陣列中的最大和陣列
- 劍指 Offer 42.連續子陣列的最大和陣列
- 劍指offer刷題day02
- 劍指offer第49題 醜數
- [劍指offer] JAVA版題解(完整版)更新中。。。Java
- 【劍指 Offer 】17. 列印從1到最大的n位數
- 《劍指Offer》- 連續子陣列的最大和或最小和陣列
- 劍指offer | 17. 列印從1到最大的n位數
- LeetCode-劍指Offer刷題記錄LeetCode
- 劍指 Offer 列印從1到最大n位數c++C++
- 劍指offer導航
- Leetcode劍指offer(八)LeetCode
- 劍指 offer21
- 劍指offer16
- 劍指 offer20
- 【劍指offer】【2】字串的空格字串
- 劍指Offer系列刷題筆記彙總筆記
- 【劍指offer】讓抽象問題具體化抽象
- GitHub#algorithm#:《劍指offer》 的50道面試題GithubGo面試題
- 劍指offer中幾道演算法題的思考演算法
- 力扣 - 劍指 Offer 59 - I. 滑動視窗的最大值力扣
- 刷題記錄:劍指offer+遇到的筆試題+LeetCode筆試LeetCode