買賣股票的最佳時機

image.png

簡單題,第一思路是雙重循環(huán)找價格最大差值,但時間復雜度O(n^2), 會超時。

優(yōu)化版思路,利用簡單動態(tài)規(guī)劃。dp獲得前i天的最低買入值,然后實時更新第i天賣出能獲得最大收益。

class Solution(object):
    def maxProfit(self, prices):
        """
        :type prices: List[int]
        :rtype: int
        """
        n = len(prices)
        # 維護一個前i天的最低買入值
        dp = [0 for i in range(n)]
        dp[0] = prices[0]
        maxin = 0
        for i in range(1,n):
          dp[i]=min(dp[i-1],prices[i])
          maxin = max(maxin,prices[i]-dp[i])
        return maxin
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容