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

【LeetCode739】每日溫度

這篇具有很好參考價(jià)值的文章主要介紹了【LeetCode739】每日溫度。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、題目描述

【題目鏈接】
給定一個(gè)整數(shù)數(shù)組 temperatures ,表示每天的溫度,返回一個(gè)數(shù)組 answer ,其中 answer[i] 是指對于第 i 天,下一個(gè)更高溫度出現(xiàn)在幾天后。如果氣溫在這之后都不會(huì)升高,請?jiān)谠撐恢糜?0 來代替。

示例 1:
輸入: temperatures = [73,74,75,71,69,72,76,73]
輸出: [1,1,4,2,1,1,0,0]

示例 2:
輸入: temperatures = [30,40,50,60]
輸出: [1,1,1,0]

示例 3:
輸入: temperatures = [30,60,90]
輸出: [1,1,0]

提示:
1 <= temperatures.length <= 105
30 <= temperatures[i] <= 100

2、基本思路

?如果采用最簡單最暴力的方法,就是從當(dāng)前位置i的下一個(gè)位置i+1出發(fā),找到第一個(gè)j,使得temperatures[j] > temperatures[i],這種方法最壞情況得時(shí)間復(fù)雜度為O(n^2)。那么,有沒有更好得方法呢?答案是有的。
?采用單調(diào)棧的方法,維護(hù)一個(gè)從棧底到棧頂單調(diào)遞減的序列,舉個(gè)簡單的例子,例如溫度序列為【1,4,3,5,5,2,3,6】

  • 初始化,???;
  • 首先,???,1入棧(棧中元素[1]);
  • 第二個(gè)數(shù)4,與棧頂元素1比較,1<4,則出棧,且答案為res[1]=1,??战Y(jié)束比較,4入棧(棧中元素[4]);
  • 第三個(gè)數(shù)3,與棧頂元素4比較,4>3,3入棧;(棧中元素[4,3]);
  • 第四個(gè)數(shù)5,與棧頂元素3比較,3<5,3出棧,答案為res[3]=1;(棧中元素[4]);
  • 棧非空,繼續(xù)與棧頂元素比較,4<5,4出戰(zhàn),答案為res[2]=2;(棧中元素[]);
  • ??眨?入棧(棧中元素[5]);
  • 第五個(gè)元素5,與棧頂元素5比較,5>=5,5入棧,(棧中元素[5,5]);
  • 第六個(gè)元素2,與棧頂元素5比較,5>2,2入棧,(棧中元素[5,5,2]);
  • 第七個(gè)元素3,與棧頂元素2比較,2<3,2出棧,且答案為res[6]=1,(棧中元素[5,5]);
  • 棧非空,繼續(xù)與棧頂元素5比較,5>3,3入棧,(棧中元素[5,5,3]);
  • 第八個(gè)元素6,與棧頂元素3比較,3<6,3出棧,且答案為res[7]=1,(棧中元素[5,5]);
  • 棧非空,與棧頂元素5比較,5<6,5出棧,且答案為res[4]=4,(棧中元素[5]);
  • 棧非空,與棧頂元素5比較,5<6,5出棧,且答案為res[5]=3,(棧中元素[]);
  • 棧為空且序列遍歷結(jié)束
    最終答案為[1,2,1,4,3,1,1,0]

?同樣,我們也可以維護(hù)一個(gè)從棧底到棧頂維護(hù)一個(gè)單調(diào)遞減的序列,遍歷的序列從右往左。

單調(diào)棧的基本思想——及時(shí)去掉無用的數(shù)據(jù),保證棧中數(shù)據(jù)有序文章來源地址http://www.zghlxwxcb.cn/news/detail-821177.html

3、代碼實(shí)現(xiàn)

  • 方法一
vector<int> solve1(vector<int> &temperatures)
{
    int n = temperatures.size();
    vector<int> res(n,0);
    stack<int> st;
    for(int i =0;i<n;++i)
    {
        int t = temperatures[i];
        while(!st.empty() && t> temperatures[st.top()])
        {
            res[st.top()] = i-st.top();
            st.pop() ;
        }
        st.push(i);

    }
    
    return res;

}
  • 方法二
vector<int> solve(vector<int> &temperatures)
{
    int n = temperatures.size();
    vector<int> res(n,0);
    stack<int> st;
    for(int i =n-1;i>=0;i--)
    {
        int t = temperatures[i];
        while(!st.empty() && t>=temperatures[st.top()])
        {
            st.pop();
        }
        if(!st.empty())
        {
            res[i] = st.top()-i;
        }
        st.push(i);
    }
    return res;

}

到了這里,關(guān)于【LeetCode739】每日溫度的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 代碼隨想錄 739. 每日溫度

    題目 給定一個(gè)整數(shù)數(shù)組 temperatures ,表示每天的溫度,返回一個(gè)數(shù)組 answer ,其中 answer[i] 是指對于第 i 天,下一個(gè)更高溫度出現(xiàn)在幾天后。如果氣溫在這之后都不會(huì)升高,請?jiān)谠撐恢糜?0 來代替。 示例 1: temperatures 示例 2: 輸入: temperatures = [30,40,50,60] 輸出: [1,1,1,0] 示例 3: 輸入

    2024年01月18日
    瀏覽(22)
  • 二叉樹(下)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“對稱二叉樹”“另一棵樹的子樹”“二叉樹的前中后序遍歷”

    二叉樹(下)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“對稱二叉樹”“另一棵樹的子樹”“二叉樹的前中后序遍歷”

    各位CSDN的uu們你們好呀,今天小雅蘭的內(nèi)容仍然是二叉樹和Leetcode每日一題,下面,就讓我們進(jìn)入二叉樹的世界吧?。?! 這個(gè)題目需要重新定義一個(gè)函數(shù),函數(shù)參數(shù)需要有左子樹和右子樹,題目所給定的函數(shù)無法解決問題。 每個(gè)不為空的結(jié)點(diǎn),都可以認(rèn)為是一棵子樹的根?

    2024年02月16日
    瀏覽(29)
  • 二叉樹(中)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“劍指Offer55-I. 二叉樹的深度”“100.相同的樹”“965.單值二叉樹”

    二叉樹(中)+Leetcode每日一題——“數(shù)據(jù)結(jié)構(gòu)與算法”“劍指Offer55-I. 二叉樹的深度”“100.相同的樹”“965.單值二叉樹”

    各位CSDN的uu們你們好呀,今天繼續(xù)數(shù)據(jù)結(jié)構(gòu)與算法專欄中的二叉樹,下面,讓我們進(jìn)入二叉樹的世界吧?。?! 二叉樹(上)——“數(shù)據(jù)結(jié)構(gòu)與算法”_認(rèn)真學(xué)習(xí)的小雅蘭.的博客-CSDN博客 二叉樹鏈?zhǔn)浇Y(jié)構(gòu)的實(shí)現(xiàn) 二叉樹鏈?zhǔn)浇Y(jié)構(gòu)的實(shí)現(xiàn) 求二叉樹的高度 但是這種寫法有很大的問題

    2024年02月17日
    瀏覽(32)
  • 數(shù)據(jù)結(jié)構(gòu)算法leetcode刷題練習(xí)(1)

    數(shù)據(jù)結(jié)構(gòu)算法leetcode刷題練習(xí)(1)

    給定一個(gè)三角形 triangle ,找出自頂向下的最小路徑和。 每一步只能移動(dòng)到下一行中相鄰的結(jié)點(diǎn)上。相鄰的結(jié)點(diǎn) 在這里指的是 下標(biāo) 與 上一層結(jié)點(diǎn)下標(biāo) 相同或者等于 上一層結(jié)點(diǎn)下標(biāo) + 1 的兩個(gè)結(jié)點(diǎn)。也就是說,如果正位于當(dāng)前行的下標(biāo) i ,那么下一步可以移動(dòng)到下一行的下標(biāo)

    2023年04月24日
    瀏覽(20)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】112、LeetCode路徑總和

    【算法與數(shù)據(jù)結(jié)構(gòu)】112、LeetCode路徑總和

    所有的LeetCode題解索引,可以看這篇文章——【算法和數(shù)據(jù)結(jié)構(gòu)】LeetCode題解。 ?? 思路分析 :本題通過計(jì)算根節(jié)點(diǎn)到葉子節(jié)點(diǎn)路徑上節(jié)點(diǎn)的值之和,然后再對比目標(biāo)值。利用文章【算法和數(shù)據(jù)結(jié)構(gòu)】257、LeetCode二叉樹的所有路徑中的遞歸算法。 這里要注意,默認(rèn)路徑之和是

    2024年02月11日
    瀏覽(28)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】62、LeetCode不同路徑

    【算法與數(shù)據(jù)結(jié)構(gòu)】62、LeetCode不同路徑

    所有的LeetCode題解索引,可以看這篇文章——【算法和數(shù)據(jù)結(jié)構(gòu)】LeetCode題解。 ?? 思路分析 :機(jī)器人只能向下或者向右移動(dòng),那么到達(dá)(i,j)位置的路徑和(i-1,j)以及(i,j-1)有關(guān)。那么我們就得到的動(dòng)態(tài)規(guī)劃的表達(dá)式 d p [ i ] [ j ] = d p [ i ? 1 ] [ j ] + d p [ i ] [ j ? 1 ] dp[i][

    2024年01月18日
    瀏覽(24)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】474、LeetCode一和零

    【算法與數(shù)據(jù)結(jié)構(gòu)】474、LeetCode一和零

    所有的LeetCode題解索引,可以看這篇文章——【算法和數(shù)據(jù)結(jié)構(gòu)】LeetCode題解。 ?? 思路分析 :本題要找strs數(shù)組的最大子集,這個(gè)子集最多含有 m m m 個(gè)0和 n n n 個(gè)1。本題也可以抽象成一個(gè)01背包的問題。其中,strs內(nèi)的元素就是物品,而 m m m 和 n n n 就是背包的維度。 d p [

    2024年01月22日
    瀏覽(26)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】343、LeetCode整數(shù)拆分

    【算法與數(shù)據(jù)結(jié)構(gòu)】343、LeetCode整數(shù)拆分

    所有的LeetCode題解索引,可以看這篇文章——【算法和數(shù)據(jù)結(jié)構(gòu)】LeetCode題解。 ?? 思路分析 :博主做這道題的時(shí)候一直在思考,如何找到 k k k 個(gè)正整數(shù), k k k 究竟為多少合適。從數(shù)學(xué)的邏輯上來說,將 n n n 均分為 k k k 個(gè)數(shù)之后, k k k 個(gè)數(shù)的乘積為最大(類似于相同周長

    2024年01月17日
    瀏覽(23)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】494、LeetCode目標(biāo)和

    【算法與數(shù)據(jù)結(jié)構(gòu)】494、LeetCode目標(biāo)和

    所有的LeetCode題解索引,可以看這篇文章——【算法和數(shù)據(jù)結(jié)構(gòu)】LeetCode題解。 ?? 思路分析 :本題和這道題【算法與數(shù)據(jù)結(jié)構(gòu)】1049、LeetCode 最后一塊石頭的重量 II類似,同樣可以轉(zhuǎn)換成01背包問題。下面開始論述。假設(shè)添加正號(hào)的整數(shù)子集和為 p o s i t i v e positive p os i t

    2024年01月20日
    瀏覽(23)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】377、LeetCode組合總和 Ⅳ

    【算法與數(shù)據(jù)結(jié)構(gòu)】377、LeetCode組合總和 Ⅳ

    所有的LeetCode題解索引,可以看這篇文章——【算法和數(shù)據(jù)結(jié)構(gòu)】LeetCode題解。 ?? 思路分析 :本題明面上說是組合,實(shí)際上指的是排列。動(dòng)態(tài)規(guī)劃排列組合背包問題需要考慮遍歷順序。 d p [ i ] dp[i] d p [ i ] 指的是nums數(shù)組中總和為target的元素排列的個(gè)數(shù)。 d p [ i ] dp[i] d p [

    2024年01月23日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包