真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

代碼隨想錄Day58|739.每日溫度、496.下一個(gè)更大元素I-創(chuàng)新互聯(lián)

文章目錄
  • 739.每日溫度
  • 496.下一個(gè)更大元素 I

創(chuàng)新互聯(lián)主要業(yè)務(wù)有網(wǎng)站營(yíng)銷策劃、做網(wǎng)站、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、小程序開(kāi)發(fā)成都h5網(wǎng)站建設(shè)、程序開(kāi)發(fā)等業(yè)務(wù)。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當(dāng)客戶,還把客戶視為我們的合作伙伴,在開(kāi)展業(yè)務(wù)的過(guò)程中,公司還積累了豐富的行業(yè)經(jīng)驗(yàn)、網(wǎng)絡(luò)營(yíng)銷推廣資源和合作伙伴關(guān)系資源,并逐漸建立起規(guī)范的客戶服務(wù)和保障體系。 739.每日溫度

文章講解:代碼隨想錄 (programmercarl.com)

題目鏈接:739. 每日溫度 - 力扣(LeetCode)

題目:

請(qǐng)根據(jù)每日 氣溫 列表,重新生成一個(gè)列表。對(duì)應(yīng)位置的輸出為:要想觀測(cè)到更高的氣溫,至少需要等待的天數(shù)。如果氣溫在這之后都不會(huì)升高,請(qǐng)?jiān)谠撐恢糜?0 來(lái)代替。

例如,給定一個(gè)列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的輸出應(yīng)該是 [1, 1, 4, 2, 1, 1, 0, 0]。

提示:氣溫 列表長(zhǎng)度的范圍是 [1, 30000]。每個(gè)氣溫的值的均為華氏度,都是在 [30, 100] 范圍內(nèi)的整數(shù)。

分析:

什么時(shí)候用單調(diào)棧:通常是一維數(shù)組,要尋找任一個(gè)元素的右邊或者左邊第一個(gè)比自己大或者小的元素的位置,此時(shí)我們就要想到可以用單調(diào)棧了。

  1. 單調(diào)棧里存放的元素是什么?

單調(diào)棧里只需要存放元素的下標(biāo)i就可以了,如果需要使用對(duì)應(yīng)的元素,直接T[i]就可以獲取。

  1. 單調(diào)棧里元素是遞增呢? 還是遞減呢?

    這里我們要使用遞增循序(再?gòu)?qiáng)調(diào)一下是指從棧頭到棧底的順序),因?yàn)橹挥羞f增的時(shí)候,加入一個(gè)元素i,才知道棧頂元素在數(shù)組中右面第一個(gè)比棧頂元素大的元素是i。

接下來(lái)我們用temperatures = [73, 74, 75, 71, 71, 72, 76, 73]為例來(lái)逐步分析,輸出應(yīng)該是 [1, 1, 4, 2, 1, 1, 0, 0]。

首先先將第一個(gè)遍歷元素加入單調(diào)棧

739.每日溫度1

加入T[1] = 74,因?yàn)門(mén)[1] >T[0](當(dāng)前遍歷的元素T[i]大于棧頂元素T[st.top()]的情況),而我們要保持一個(gè)遞增單調(diào)棧(從棧頭到棧底),所以將T[0]彈出,T[1]加入,此時(shí)result數(shù)組可以記錄了,result[0] = 1,即T[0]右面第一個(gè)比T[0]大的元素是T[1]。

739.每日溫度2

加入T[2],同理,T[1]彈出

739.每日溫度3

加入T[3],T[3]< T[2] (當(dāng)前遍歷的元素T[i]小于棧頂元素T[st.top()]的情況),加T[3]加入單調(diào)棧

739.每日溫度4

加入T[4],T[4] == T[3] (當(dāng)前遍歷的元素T[i]等于棧頂元素T[st.top()]的情況),此時(shí)依然要加入棧,不用計(jì)算距離,因?yàn)槲覀円蟮氖怯颐娴谝粋€(gè)大于本元素的位置,而不是大于等于!

739.每日溫度5

加入T[5],T[5] >T[4] (當(dāng)前遍歷的元素T[i]大于棧頂元素T[st.top()]的情況),將T[4]彈出,同時(shí)計(jì)算距離,更新result

739.每日溫度6

T[4]彈出之后, T[5] >T[3] (當(dāng)前遍歷的元素T[i]大于棧頂元素T[st.top()]的情況),將T[3]繼續(xù)彈出,同時(shí)計(jì)算距離,更新result

739.每日溫度7

直到發(fā)現(xiàn)T[5]小于T[st.top()],終止彈出,將T[5]加入單調(diào)棧

739.每日溫度8

加入T[6],同理,需要將棧里的T[5],T[2]彈出

739.每日溫度9

同理,繼續(xù)彈出

739.每日溫度10

此時(shí)棧里只剩下了T[6]

739.每日溫度11

加入T[7], T[7]< T[6] 直接入棧,這就是最后的情況,result數(shù)組也更新完了。

739.每日溫度12

其實(shí)定義result數(shù)組的時(shí)候,就應(yīng)該直接初始化為0,如果result沒(méi)有更新,說(shuō)明這個(gè)元素右面沒(méi)有更大的了,也就是為0。

以上在圖解的時(shí)候,已經(jīng)把,這三種情況都做了詳細(xì)的分析。

  • 情況一:當(dāng)前遍歷的元素T[i]小于棧頂元素T[st.top()]的情況
  • 情況二:當(dāng)前遍歷的元素T[i]等于棧頂元素T[st.top()]的情況
  • 情況三:當(dāng)前遍歷的元素T[i]大于棧頂元素T[st.top()]的情況
class Solution {public:
    vectordailyTemperatures(vector& temperatures) {stackst;
        vectorresult(temperatures.size(), 0);
        st.push(0);
        for (int i = 1; i< temperatures.size(); i++) {if (temperatures[i]< temperatures[st.top()]) {st.push(i);
            } else if (temperatures[i] == temperatures[st.top()]) {st.push(i);
            } else {while (!st.empty() && temperatures[i] >temperatures[st.top()]) {result[st.top()] = i - st.top();
                    st.pop();
                }
                st.push(i);
            }
        }
        return result;
    }
};
496.下一個(gè)更大元素 I

文章講解:代碼隨想錄 (programmercarl.com)

題目鏈接:496. 下一個(gè)更大元素 I - 力扣(LeetCode)

題目:

給你兩個(gè) 沒(méi)有重復(fù)元素 的數(shù)組 nums1 和 nums2 ,其中nums1 是 nums2 的子集。

請(qǐng)你找出 nums1 中每個(gè)元素在 nums2 中的下一個(gè)比其大的值。

nums1 中數(shù)字 x 的下一個(gè)更大元素是指 x 在 nums2 中對(duì)應(yīng)位置的右邊的第一個(gè)比 x 大的元素。如果不存在,對(duì)應(yīng)位置輸出 -1 。

class Solution {public:
    vectornextGreaterElement(vector& nums1, vector& nums2) {stackst;
        vectorresult(nums1.size(), -1);
        if (nums1.size() == 0) return result;
        unordered_mapumap;
        for (int i = 0; i< nums1.size(); i++) {umap[nums1[i]] = i;
        }
        st.push(0);
        for (int i = 1; i< nums2.size(); i++) {if (nums2[i]< nums2[st.top()]) {st.push(i);
            } else if (nums2[i] == nums2[st.top()]) {st.push(i);
            } else {while (!st.empty() && nums2[i] >nums2[st.top()]) {if (umap.count(nums2[st.top()]) >0) {int index = umap[nums2[st.top()]];
                        result[index] = nums2[i];
                    }
                    st.pop();
                }
                st.push(i);
            }
        }
        return result;
    }
};

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


當(dāng)前標(biāo)題:代碼隨想錄Day58|739.每日溫度、496.下一個(gè)更大元素I-創(chuàng)新互聯(lián)
URL地址:http://weahome.cn/article/gcegd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部