91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LeetCode中如何計算股票的最大利潤

發布時間:2021-12-15 14:15:03 來源:億速云 閱讀:203 作者:小新 欄目:大數據

這篇文章給大家分享的是有關LeetCode中如何計算股票的最大利潤 的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

         

題目描述

假設把某股票的價格按照時間先后順序存儲在數組中,請問買賣該股票一次可能獲得的最大利潤是多少?

  • 0 <= 數組長度 <= 10^5
               

題目樣例

               

示例

  • 輸入: [7,1,5,3,6,4]

  • 輸出: 5

  • 解釋: 在第 2 天(股票價格 = 1)的時候買入,在第 5 天(股票價格 = 6)的時候賣出,最大利潤 = 6-1 = 5 。注意利潤不能是 7-1 = 6, 因為賣出價格需要大于買入價格。

  • 輸入: [7,6,4,3,1]

  • 輸出: 0

  • 解釋: 在這種情況下, 沒有交易完成, 所以最大利潤為 0。

               

題目思考

  1. 只能買賣一次, 要求最大利潤, 有沒有什么直觀思路, 比如貪心法?
               

解決方案

               

思路

  • 因為只能買賣一次, 所以我們必須要保證買賣的那次收益最大, 這才是最佳時機, 這就要用到貪心的思路
  • 我們可以維護一個當前的最小值, 然后遍歷整個數組, 每次都用當前值減去最小值, 如果收益比最終結果大的話, 就更新最終結果, 這樣最終結果一定是最大的收益
  • 注意如果當前值比最小值小的話, 也要更新最小值, 意味著之后的遍歷要以更新后的最小值作為買入起點
               

復雜度

  • 時間復雜度 O(N): 需要遍歷整個數組一遍
  • 空間復雜度 O(1): 只需要維護常數個變量
               

代碼

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        res = 0
        mn = float('inf')
        for p in prices:
            mn = min(mn, p)
            res = max(res, p - mn)
        return res

感謝各位的閱讀!關于“LeetCode中如何計算股票的最大利潤 ”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

探索| 毕节市| 吴桥县| 余干县| 通河县| 柘荣县| 闵行区| 玛沁县| 公安县| 如皋市| 全南县| 福贡县| 双鸭山市| 榕江县| 吕梁市| 应城市| 安龙县| 屏东市| 香港| 瑞昌市| 新邵县| 南城县| 南昌县| 沂源县| 淄博市| 密山市| 通渭县| 台北市| 凌云县| 丰都县| 南安市| 青河县| 凤庆县| 东港市| 靖宇县| 商南县| 栾川县| 余庆县| 金山区| 新乡市| 郴州市|