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

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

LeetCode怎么實(shí)現(xiàn)包含min函數(shù)的棧

這篇文章主要為大家展示了“LeetCode怎么實(shí)現(xiàn)包含min函數(shù)的?!?,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“LeetCode怎么實(shí)現(xiàn)包含min函數(shù)的?!边@篇文章吧。

饒陽網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)

題目描述

定義棧的數(shù)據(jù)結(jié)構(gòu),請?jiān)谠擃愋椭袑?shí)現(xiàn)一個(gè)能夠得到棧中所含最小元素的min函數(shù)(時(shí)間復(fù)雜度應(yīng)為O(1))。

解析

看到這個(gè)問題, 我們最開始可能會想, 添加一個(gè)成員變量用于保存最小元素, 每次壓棧時(shí)如果壓棧元素比當(dāng)前最小元素更小, 就更新最小元素.

但是這樣會有一個(gè)問題, 如果最小元素被彈出了呢, 如何獲得下一個(gè)最小元素呢?分析到這里可以發(fā)現(xiàn), 僅僅添加一個(gè)成員變量存放最小元素是不夠的, 我們需要在最小元素彈出后還能得到次小元素, 次小的彈出后, 還要能得到次次小的.因此, 用另一個(gè)棧來保存這些元素是再合適不過的了. 我們叫它最小元素棧.

每次壓棧操作時(shí), 如果壓棧元素比當(dāng)前最小元素更小, 就把這個(gè)元素壓入最小元素棧, 原本的最小元素就成了次小元素. 同理, 彈棧時(shí), 如果彈出的元素和最小元素棧的棧頂元素相等, 就把最小元素的棧頂彈出.

代碼

class Solution {
public:
   void push(int value) {
       s.push(value);
       if(sMin.empty())
           sMin.push(value);
       else if(value <= sMin.top())
           sMin.push(value);
   }
   void pop() {
       if(s.top() == sMin.top())
           sMin.pop();
       s.pop();
   }
   int top() {
       return s.top();
   }
   int min() {
       return sMin.top();
   }
private:
   stack s;
   stack sMin;
};

以上是“LeetCode怎么實(shí)現(xiàn)包含min函數(shù)的?!边@篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


文章題目:LeetCode怎么實(shí)現(xiàn)包含min函數(shù)的棧
當(dāng)前鏈接:http://weahome.cn/article/ihgojd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部