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

算法練習(xí)Day50|● 123.買賣股票的最佳時(shí)機(jī)III ● 188.買賣股票的最佳時(shí)機(jī)IV

這篇具有很好參考價(jià)值的文章主要介紹了算法練習(xí)Day50|● 123.買賣股票的最佳時(shí)機(jī)III ● 188.買賣股票的最佳時(shí)機(jī)IV。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

LeetCode:123.買賣股票的最佳時(shí)機(jī)III

123. 買賣股票的最佳時(shí)機(jī) III - 力扣(LeetCode)

1.思路

將兩次買入賣出轉(zhuǎn)化為是否持有的狀態(tài),當(dāng)天可進(jìn)行兩次買賣,故每天買賣有四種狀態(tài),四種狀態(tài)包含了當(dāng)天不買不賣的狀態(tài)。

2.代碼實(shí)現(xiàn)
 1class?Solution?{
 2????public?int?maxProfit(int[]?prices)?{
 3
 4????????//?根據(jù)買入賣出定義多種狀態(tài):0表示不操作,1表示第一次持有,2表示第一次不持有,3表示第二次持有,4表示第2次不持有
 5????????int[][]?dp?=?new?int[prices.length][5];
 6????????dp[0][0]?=?0;
 7????????dp[0][1]?=?-prices[0];
 8????????dp[0][2]?=?0;
 9????????dp[0][3]?=?-prices[0];
10????????dp[0][4]?=?0;
11
12????????for?(int?i?=?1;?i?<?prices.length;?i++)?{
13????????????//?第一次持有,前一天就持有?或?第i天買入持有
14????????????dp[i][1]?=?Math.max(dp[i?-?1][1],?-prices[i]);
15????????????//?第一次不持有,前一天不持有?或?第i天不持有
16????????????dp[i][2]?=?Math.max(dp[i?-?1][2],?dp[i?-?1][1]?+?prices[i]);
17????????????//?第二次持有,前一天第二次持有?或?前一天不持有第i天持有
18????????????dp[i][3]?=?Math.max(dp[i?-?1][3],?dp[i?-?1][2]?-?prices[i]);
19????????????//?第二次不持有,前一天第二次不持有?或前一天第二次持有第i天賣出
20????????????dp[i][4]?=?Math.max(dp[i?-?1][4],?dp[i?-?1][3]?+?prices[i]);
21????????}
22????????return?Math.max(dp[prices.length?-?1][2],?dp[prices.length?-?1][4]);
23????}
24}
25
3.復(fù)雜度分析

時(shí)間復(fù)雜度:O(n).
空間復(fù)雜度:O(1).

LeetCode:188.買賣股票的最佳時(shí)機(jī)IV?

188. 買賣股票的最佳時(shí)機(jī) IV - 力扣(LeetCode)

1.思路

在上一題的基礎(chǔ)上,將第i天是否持有股票或不持有和第幾次持有或不持有股票作為一個(gè)循環(huán)體進(jìn)行i天,每天k次的循環(huán)遍歷,最終輸出結(jié)果即可。

2.代碼實(shí)現(xiàn)
 1class?Solution?{
 2????public?int?maxProfit(int?k,?int[]?prices)?{
 3
 4????????//?定義dp[][][]?數(shù)組,[天數(shù)][交易次數(shù)][是否持有股票]
 5????????int?len?=?prices.length;
 6????????int[][][]?dp?=?new?int[len][k?+?1][2];
 7
 8????????//?初始化dp數(shù)組
 9????????//?初始化所有的交易次數(shù)是為確保?最后結(jié)果是最多?k?次買賣的最大利潤(rùn)
10????????for?(int?i?=?0;?i?<=?k;?i++)?{
11????????????dp[0][i][1]?=?-prices[0];
12????????}
13
14????????for?(int?i?=?1;?i?<?len;?i++)?{
15????????????for?(int?j?=?1;?j?<=?k;?j++)?{
16????????????????//?0?表示不持有股票
17????????????????//?1?表示持有股票
18????????????????dp[i][j][0]?=?Math.max(dp[i?-?1][j][0],?dp[i?-?1][j][1]?+?prices[i]);
19????????????????dp[i][j][1]?=?Math.max(dp[i?-?1][j][1],?dp[i?-?1][j?-?1][0]?-?prices[i]);
20????????????}
21????????}
22????????return?dp[len?-?1][k][0];
23????}
24}
25
3.復(fù)雜度分析

時(shí)間復(fù)雜度:O(nk). 空間復(fù)雜度:O(nk).文章來源地址http://www.zghlxwxcb.cn/news/detail-656467.html

到了這里,關(guān)于算法練習(xí)Day50|● 123.買賣股票的最佳時(shí)機(jī)III ● 188.買賣股票的最佳時(shí)機(jī)IV的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 123. 買賣股票的最佳時(shí)機(jī) III

    123. 買賣股票的最佳時(shí)機(jī) III - 力扣(LeetCode) 給定一個(gè)數(shù)組,它的第 ? i ?個(gè)元素是一支給定的股票在第? i ? 天的價(jià)格。 設(shè)計(jì)一個(gè)算法來計(jì)算你所能獲取的最大利潤(rùn)。你最多可以完成? 兩筆? 交易。 注意: 你不能同時(shí)參與多筆交易(你必須在再次購(gòu)買前出售掉之前的股票)

    2024年02月07日
    瀏覽(25)
  • 刷題第四十二天 123. 買賣股票的最佳時(shí)機(jī)Ⅲ 188. 買賣股票的最佳時(shí)機(jī)Ⅳ

    刷題第四十二天 123. 買賣股票的最佳時(shí)機(jī)Ⅲ 188. 買賣股票的最佳時(shí)機(jī)Ⅳ

    和前一題的限制在于只能買賣兩次,所以dp數(shù)組多定義一個(gè)狀態(tài),分別表示第一次持有 第一次不持有和第二次持有 第二次不持有,然后進(jìn)行更新。 注意初始化的時(shí)候 第一次持有和第二次持有都需要默認(rèn)0-prices[0] 和前一題的差別就是可以多次買賣,所以定義一個(gè)三維數(shù)組,表

    2024年02月05日
    瀏覽(17)
  • 123.買賣股票的最佳時(shí)機(jī)II

    123.買賣股票的最佳時(shí)機(jī)II

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

    2024年02月20日
    瀏覽(21)
  • 算法刷題Day 51 最佳買賣股票時(shí)機(jī)含冷凍期+買賣股票的最佳時(shí)期含手續(xù)費(fèi)

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

    2024年02月15日
    瀏覽(31)
  • 【學(xué)會(huì)動(dòng)態(tài)規(guī)劃】買賣股票的最佳時(shí)機(jī) III(17)

    【學(xué)會(huì)動(dòng)態(tài)規(guī)劃】買賣股票的最佳時(shí)機(jī) III(17)

    目錄 動(dòng)態(tài)規(guī)劃怎么學(xué)? 1. 題目解析 2. 算法原理 1. 狀態(tài)表示 2. 狀態(tài)轉(zhuǎn)移方程 3. 初始化 4. 填表順序 5. 返回值 3. 代碼編寫 寫在最后: 學(xué)習(xí)一個(gè)算法沒有捷徑,更何況是學(xué)習(xí)動(dòng)態(tài)規(guī)劃, 跟我一起刷動(dòng)態(tài)規(guī)劃算法題,一起學(xué)會(huì)動(dòng)態(tài)規(guī)劃! 題目鏈接:123. 買賣股票的最佳時(shí)機(jī) II

    2024年02月13日
    瀏覽(24)
  • DAY36:貪心算法(三)最大子數(shù)組和+買賣股票最佳時(shí)機(jī)

    DAY36:貪心算法(三)最大子數(shù)組和+買賣股票最佳時(shí)機(jī)

    給你一個(gè)整數(shù)數(shù)組 nums ,請(qǐng)你找出一個(gè)具有最大和的連續(xù)子數(shù)組(子數(shù)組最少包含一個(gè)元素),返回其最大和。 子數(shù)組 是數(shù)組中的一個(gè)連續(xù)部分。 示例 1: 示例 2: 示例 3: 提示: 1 = nums.length = 10^5 -10^4 = nums[i] = 10^4 枚舉思路 本題的暴力解法就是兩個(gè)for循環(huán),一個(gè)for循環(huán)遍

    2024年02月12日
    瀏覽(18)
  • Day32 貪心算法 part02 122. 買賣股票的最佳時(shí)機(jī) II 55. 跳躍游戲 45. 跳躍游戲 II

    思路:計(jì)算每天的利潤(rùn),利潤(rùn)如果為正,加到結(jié)果中去

    2024年01月19日
    瀏覽(30)
  • 【Day53】代碼隨想錄之動(dòng)態(tài)規(guī)劃part10——買賣股票的最佳時(shí)機(jī)、買賣股票的最佳時(shí)機(jī)II

    【Day53】代碼隨想錄之動(dòng)態(tài)規(guī)劃part10——買賣股票的最佳時(shí)機(jī)、買賣股票的最佳時(shí)機(jī)II

    昨天已經(jīng)把打家劫舍的問題解決了,最后一個(gè)題目涉及到樹形dp比較難(等到二刷的時(shí)候再重點(diǎn)看下),今天的任務(wù)是解決股票問題。 今日任務(wù): 121.買賣股票的最佳時(shí)機(jī) 122.買賣股票的最佳時(shí)機(jī)II Leetcode題目:【121.買賣股票的最佳時(shí)機(jī)】 因?yàn)榇祟}中買賣股票只能買賣一次。

    2024年03月15日
    瀏覽(33)
  • 算法刷題|121.買賣股票的最佳時(shí)機(jī)、122.買賣股票的最佳時(shí)機(jī)Ⅱ

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

    2023年04月26日
    瀏覽(23)
  • DAY55:動(dòng)態(tài)規(guī)劃(買賣股票的最佳時(shí)機(jī)3)

    DAY55:動(dòng)態(tài)規(guī)劃(買賣股票的最佳時(shí)機(jī)3)

    這道題比上面狀態(tài)更多,是因?yàn)橘u出股票后,你無法在第二天買入股票 (即冷凍期為1天)。 狀態(tài) 狀態(tài)一:持有股票狀態(tài)(今天買入股票,或者是之前就買入了股票然后沒有操作,一直持有) 不持有股票狀態(tài),這里就有兩種賣出股票狀態(tài) 狀態(tài)二:保持賣出股票的狀態(tài)(兩天前

    2024年02月22日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包