国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

刷題第四十二天 123. 買賣股票的最佳時機Ⅲ 188. 買賣股票的最佳時機Ⅳ

這篇具有很好參考價值的文章主要介紹了刷題第四十二天 123. 買賣股票的最佳時機Ⅲ 188. 買賣股票的最佳時機Ⅳ。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

刷題第四十二天 123. 買賣股票的最佳時機Ⅲ 188. 買賣股票的最佳時機Ⅳ,算法

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        # dp[i][0] 第i天第一次持有這只股票的最大現(xiàn)金
        # dp[i][1] 第i天第一次不持有這只股票的最大現(xiàn)金
        # dp[i][2] 第i天第二次持有
        # dp[i][3] 第i天第二次不持有

        # dp[i][0] = max(dp[i - 1][0], -prices[i])
        # dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i]) 
        # dp[i][2] = max(dp[i - 1][2], dp[i - 1][1] - prices[i])
        # dp[i][3] = max(dp[i - 1][3], dp[i - 1][2] + prices[i])
        dp = [[0] * 4 for _ in range(len(prices))]
        dp[0][0] = -prices[0]
        dp[0][2] = -prices[0] #默認(rèn)第一天第一次買入又賣出了
        for i in range(1,len(prices)):
            dp[i][0] = max(dp[i - 1][0], -prices[i])
            dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i]) 
            dp[i][2] = max(dp[i - 1][2], dp[i - 1][1] - prices[i])
            dp[i][3] = max(dp[i - 1][3], dp[i - 1][2] + prices[i])   
        return dp[-1][3]

和前一題的限制在于只能買賣兩次,所以dp數(shù)組多定義一個狀態(tài),分別表示第一次持有 第一次不持有和第二次持有 第二次不持有,然后進行更新。

注意初始化的時候 第一次持有和第二次持有都需要默認(rèn)0-prices[0]

刷題第四十二天 123. 買賣股票的最佳時機Ⅲ 188. 買賣股票的最佳時機Ⅳ,算法

class Solution:
    def maxProfit(self, k: int, prices: List[int]) -> int:
        # dp[i][k][0] 第i天第k + 1次持有
        # dp[i][k][1] 第i天第k + 1次不持有

        # k = 0
        # dp[i][k][0] = max(dp[i-1][k][0], - prices[i])
        # dp[i][k][1] = max(dp[i-1][k][1], dp[i - 1][k][0] + prices[i])
        # k != 0
        # dp[i][k][0] = max(dp[i-1][k][0], dp[i - 1][k - 1][1] - prices[i])
        # dp[i][k][1] = max(dp[i-1][k][1], dp[i - 1][k][0] + prices[i])

        dp = [[[0,0] for _ in range(k)] for _ in range(len(prices))]
        for i in range(k):
            dp[0][i][0] = -prices[0]
        for i in range(1, len(prices)):
            dp[i][0][0] = max(dp[i-1][0][0], - prices[i])
            dp[i][0][1] = max(dp[i-1][0][1], dp[i - 1][0][0] + prices[i])        
            for j in range(1, k):
                    dp[i][j][0] = max(dp[i-1][j][0], dp[i - 1][j - 1][1] - prices[i])
                    dp[i][j][1] = max(dp[i-1][j][1], dp[i - 1][j][0] + prices[i])               
        return dp[-1][-1][1]

和前一題的差別就是可以多次買賣,所以定義一個三維數(shù)組,表示每次持有和不持有文章來源地址http://www.zghlxwxcb.cn/news/detail-752707.html

到了這里,關(guān)于刷題第四十二天 123. 買賣股票的最佳時機Ⅲ 188. 買賣股票的最佳時機Ⅳ的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 123.買賣股票的最佳時機II

    123.買賣股票的最佳時機II

    123.買賣股票的最佳時機II https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/

    2024年02月20日
    瀏覽(21)
  • 算法練習(xí)Day50|● 123.買賣股票的最佳時機III ● 188.買賣股票的最佳時機IV

    LeetCode:123.買賣股票的最佳時機III 123. 買賣股票的最佳時機 III - 力扣(LeetCode) 1.思路 將兩次買入賣出轉(zhuǎn)化為是否持有的狀態(tài),當(dāng)天可進行兩次買賣,故每天買賣有四種狀態(tài),四種狀態(tài)包含了當(dāng)天不買不賣的狀態(tài)。 2.代碼實現(xiàn) 3.復(fù)雜度分析 時間復(fù)雜度:O(n). 空間復(fù)雜度:O(1

    2024年02月12日
    瀏覽(27)
  • java算法day50 | ● 123.買賣股票的最佳時機III ● 188.買賣股票的最佳時機IV

    java算法day50 | ● 123.買賣股票的最佳時機III ● 188.買賣股票的最佳時機IV

    思路: 這道題的關(guān)鍵就是如何設(shè)置dp數(shù)組的狀態(tài)。用五種狀態(tài)表示對股票持有或售出的不同階段。代碼隨想錄講解視頻 時間復(fù)雜度:O(n) 空間復(fù)雜度:O(n × 5) 思路: 在上一題2次的基礎(chǔ)上變?yōu)閗次。可以發(fā)現(xiàn)規(guī)律:除了0以外,偶數(shù)就是賣出,奇數(shù)就是買入。 因此dp數(shù)組的維度

    2024年04月11日
    瀏覽(22)
  • 算法訓(xùn)練第五十天 | 123.買賣股票的最佳時機III、188.買賣股票的最佳時機IV

    算法訓(xùn)練第五十天 | 123.買賣股票的最佳時機III、188.買賣股票的最佳時機IV

    題目鏈接:123.買賣股票的最佳時機III 參考:https://programmercarl.com/0123.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAIII.html 視頻講解:https://www.bilibili.com/video/BV1WG411K7AR 給定一個數(shù)組,它的第 i 個元素是一支給定的股票在第 i 天的價格。 設(shè)計一個算法來計算你所

    2024年02月01日
    瀏覽(26)
  • 力扣經(jīng)典150題第七題:買賣股票最佳時機

    1. 簡介 本篇博客將討論力扣經(jīng)典150題中的買賣股票的最佳時機問題。給定一個數(shù)組 prices ,其中第 i 個元素 prices[i] 表示一支給定股票第 i 天的價格,我們需要設(shè)計一個算法來計算最大利潤。 2. 問題描述 給定一個數(shù)組 prices ,它的第 i 個元素 prices[i] 表示一支給定股票第 i 天

    2024年04月13日
    瀏覽(30)
  • 算法刷題|121.買賣股票的最佳時機、122.買賣股票的最佳時機Ⅱ

    題目:給定一個數(shù)組 prices ,它的第 i 個元素 prices[i] 表示一支給定股票第 i 天的價格。 你只能選擇 某一天 買入這只股票,并選擇在 未來的某一個不同的日子 賣出該股票。設(shè)計一個算法來計算你所能獲取的最大利潤。 返回你可以從這筆交易中獲取的最大利潤。如果你不能獲

    2023年04月26日
    瀏覽(24)
  • 算法刷題Day 51 最佳買賣股票時機含冷凍期+買賣股票的最佳時期含手續(xù)費

    關(guān)鍵是要畫出狀態(tài)轉(zhuǎn)移圖 然后根據(jù)狀態(tài)轉(zhuǎn)移圖來寫狀態(tài)轉(zhuǎn)移方程 這道題其實就是在買賣股票II的基礎(chǔ)上加入一點變化而已,代碼框架還是那個框架。

    2024年02月15日
    瀏覽(31)
  • 從零開始的力扣刷題記錄-第四十二天

    題目描述: 給你長度相等的兩個字符串 s1 和 s2 。一次 字符串交換 操作的步驟如下:選出某個字符串中的兩個下標(biāo)(不必不同),并交換這兩個下標(biāo)所對應(yīng)的字符。 如果對 其中一個字符串 執(zhí)行 最多一次字符串交換 就可以使兩個字符串相等,返回 true ;否則,返回 false 。

    2024年02月06日
    瀏覽(23)
  • 代碼隨想錄 第三十二天 45.跳躍游戲 II||122.買賣股票的最佳時機 II55. 跳躍游戲

    力扣題目鏈接(opens new window) 給定一個非負(fù)整數(shù)數(shù)組,你最初位于數(shù)組的第一個位置。 數(shù)組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最后一個位置。 示例 ?1: 輸入: [2,3,1,1,4] 輸出: true 解釋: 我們可以先跳 1 步,從位置 0 到達 位置 1, 然后再從位

    2024年02月15日
    瀏覽(27)
  • leetcode刷題(輪轉(zhuǎn)數(shù)組、買股票的最佳時機、買賣股票的最佳時機2、跳躍游戲、跳躍游戲2、最大子序列交替和、交替數(shù)字和、下降路徑最小和)

    leetcode刷題(輪轉(zhuǎn)數(shù)組、買股票的最佳時機、買賣股票的最佳時機2、跳躍游戲、跳躍游戲2、最大子序列交替和、交替數(shù)字和、下降路徑最小和)

    目錄 1、輪轉(zhuǎn)數(shù)組 2、買賣股票的最佳時機 3、買賣股票的最佳時機② 4、跳躍游戲 5、跳躍游戲2 6、最大子序列交替和 7、交替數(shù)字和 8、下降路徑最小和 1、輪轉(zhuǎn)數(shù)組 2、買賣股票的最佳時機 3、買賣股票的最佳時機② 4、跳躍游戲 5、跳躍游戲2 6、最大子序列交替和 7、交替數(shù)

    2024年02月16日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包