摘要:題目描述設(shè)計(jì)一個(gè)支持,,操作,并能在常數(shù)時(shí)間內(nèi)檢索到最小元素的棧。刪除棧頂?shù)脑亍z索棧中的最小元素。示例返回返回返回代碼實(shí)現(xiàn)
題目描述
設(shè)計(jì)一個(gè)支持 push,pop,top 操作,并能在常數(shù)時(shí)間內(nèi)檢索到最小元素的棧。
push(x) -- 將元素 x 推入棧中。 pop() -- 刪除棧頂?shù)脑亍?top() -- 獲取棧頂元素。 getMin() -- 檢索棧中的最小元素。
示例:
MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); --> 返回 -3. minStack.pop(); minStack.top(); --> 返回 0. minStack.getMin(); --> 返回 -2.代碼實(shí)現(xiàn)
/** * initialize your data structure here. */ var MinStack = function() { this.s1 = []; this.s2 = []; }; /** * @param {number} x * @return {void} */ MinStack.prototype.push = function(x) { let s2 = this.s2, s2Len = s2.length, s1 = this.s1; let curMin = s2[s2Len-1]; if(curMin < x) s2.push(curMin); else s2.push(x); s1.push(x); }; /** * @return {void} */ MinStack.prototype.pop = function() { let s1 = this.s1, s1Len = s1.length, s2 = this.s2, s2Len = s2.length; if(s1Len === 0) return undefined; s2.pop(); return s1.pop(); }; /** * @return {number} */ MinStack.prototype.top = function() { let s1 = this.s1, s1Len = s1.length; if(s1.length === 0) return undefined; return s1[s1Len-1]; }; /** * @return {number} */ MinStack.prototype.getMin = function() { let s2 = this.s2, s2Len = s2.length; if(s2Len === 0) return undefined; return s2[s2Len-1]; }; /** * Your MinStack object will be instantiated and called as such: * var obj = Object.create(MinStack).createNew() * obj.push(x) * obj.pop() * var param_3 = obj.top() * var param_4 = obj.getMin() */
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/97084.html
摘要:刪除棧頂?shù)脑亍?梢粤硗庑陆ㄒ粋€(gè)棧來(lái)順序存入數(shù)據(jù)最小值。另外在數(shù)據(jù)入棧時(shí)需要判斷該值是否比輔助棧的棧頂元素的值更小,如果更小,也應(yīng)該將它加入輔助棧。并且需要判斷輔助棧是否為空,在不空的條件下才可以取棧頂元素比較,否則會(huì)溢出。 LeetCode 155:最小棧 Min Stack 設(shè)計(jì)一個(gè)支持 push,pop,top 操作,并能在常數(shù)時(shí)間內(nèi)檢索到最小元素的棧。 push(x) -- ...
摘要:題目地址題目描述設(shè)計(jì)一個(gè)支持,,操作,并能在常數(shù)時(shí)間內(nèi)檢索到最小元素的棧。將元素推入棧中。刪除棧頂?shù)脑亍J纠祷胤祷胤祷亟獯鹈看稳霔6挤湃雰蓚€(gè)元素,分別是當(dāng)前元素,和當(dāng)前的最小元素因此放入之前需要和當(dāng)前值進(jìn)行比較。 題目地址:https://leetcode-cn.com/probl...題目描述:設(shè)計(jì)一個(gè)支持 push,pop,top 操作,并能在常數(shù)時(shí)間內(nèi)檢索到最小元素的棧。 p...
摘要:題目描述定義棧的數(shù)據(jù)結(jié)構(gòu),請(qǐng)?jiān)谠擃?lèi)型中實(shí)現(xiàn)一個(gè)能夠得到棧最小元素的函數(shù)。 題目描述 定義棧的數(shù)據(jù)結(jié)構(gòu),請(qǐng)?jiān)谠擃?lèi)型中實(shí)現(xiàn)一個(gè)能夠得到棧最小元素的min函數(shù)。 分析 該題目要求實(shí)現(xiàn)一個(gè)帶有返回當(dāng)前棧中最小元素功能的數(shù)據(jù)結(jié)構(gòu),首先會(huì)想到使用一個(gè)變量保存當(dāng)前最小元素的下標(biāo),但是仔細(xì)一想,如果當(dāng)前最小元素剛好在棧頂,此時(shí)執(zhí)行pop操作,那么最小元素會(huì)被彈出,新的最小元素又上哪兒找呢?比較暴力的方...
摘要:正如我標(biāo)題所說(shuō),簡(jiǎn)歷被拒。看了我簡(jiǎn)歷之后說(shuō)頭條競(jìng)爭(zhēng)激烈,我背景不夠,點(diǎn)到為止。。三準(zhǔn)備面試其實(shí)從三月份投遞簡(jiǎn)歷開(kāi)始準(zhǔn)備面試到四月份收,也不過(guò)個(gè)月的時(shí)間,但這都是建立在我過(guò)去一年的積累啊。 本文是 無(wú)精瘋 同學(xué)投稿的面試經(jīng)歷 關(guān)注微信公眾號(hào):進(jìn)擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無(wú)精瘋 同學(xué)的分享 目錄: 印象中的頭條 面試背景 準(zhǔn)備面試 ...
閱讀 2955·2021-11-24 09:39
閱讀 2863·2021-09-29 09:34
閱讀 3558·2021-09-24 10:23
閱讀 1744·2021-09-22 15:41
閱讀 1697·2019-08-30 15:55
閱讀 3512·2019-08-30 13:58
閱讀 2621·2019-08-30 13:11
閱讀 1667·2019-08-29 12:31