摘要:題目描述設(shè)計一個支持,,操作,并能在常數(shù)時間內(nèi)檢索到最小元素的棧。刪除棧頂?shù)脑亍z索棧中的最小元素。示例返回返回返回代碼實現(xiàn)
題目描述
設(shè)計一個支持 push,pop,top 操作,并能在常數(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.代碼實現(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/97084.html
摘要:刪除棧頂?shù)脑???梢粤硗庑陆ㄒ粋€棧來順序存入數(shù)據(jù)最小值。另外在數(shù)據(jù)入棧時需要判斷該值是否比輔助棧的棧頂元素的值更小,如果更小,也應(yīng)該將它加入輔助棧。并且需要判斷輔助棧是否為空,在不空的條件下才可以取棧頂元素比較,否則會溢出。 LeetCode 155:最小棧 Min Stack 設(shè)計一個支持 push,pop,top 操作,并能在常數(shù)時間內(nèi)檢索到最小元素的棧。 push(x) -- ...
摘要:題目地址題目描述設(shè)計一個支持,,操作,并能在常數(shù)時間內(nèi)檢索到最小元素的棧。將元素推入棧中。刪除棧頂?shù)脑?。示例返回返回返回解答每次入棧都放入兩個元素,分別是當前元素,和當前的最小元素因此放入之前需要和當前值進行比較。 題目地址:https://leetcode-cn.com/probl...題目描述:設(shè)計一個支持 push,pop,top 操作,并能在常數(shù)時間內(nèi)檢索到最小元素的棧。 p...
摘要:題目描述定義棧的數(shù)據(jù)結(jié)構(gòu),請在該類型中實現(xiàn)一個能夠得到棧最小元素的函數(shù)。 題目描述 定義棧的數(shù)據(jù)結(jié)構(gòu),請在該類型中實現(xiàn)一個能夠得到棧最小元素的min函數(shù)。 分析 該題目要求實現(xiàn)一個帶有返回當前棧中最小元素功能的數(shù)據(jù)結(jié)構(gòu),首先會想到使用一個變量保存當前最小元素的下標,但是仔細一想,如果當前最小元素剛好在棧頂,此時執(zhí)行pop操作,那么最小元素會被彈出,新的最小元素又上哪兒找呢?比較暴力的方...
摘要:正如我標題所說,簡歷被拒??戳宋液啔v之后說頭條競爭激烈,我背景不夠,點到為止。。三準備面試其實從三月份投遞簡歷開始準備面試到四月份收,也不過個月的時間,但這都是建立在我過去一年的積累啊。 本文是 無精瘋 同學(xué)投稿的面試經(jīng)歷 關(guān)注微信公眾號:進擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無精瘋 同學(xué)的分享 目錄: 印象中的頭條 面試背景 準備面試 ...
閱讀 2958·2021-11-24 09:39
閱讀 2869·2021-09-29 09:34
閱讀 3561·2021-09-24 10:23
閱讀 1746·2021-09-22 15:41
閱讀 1701·2019-08-30 15:55
閱讀 3516·2019-08-30 13:58
閱讀 2624·2019-08-30 13:11
閱讀 1669·2019-08-29 12:31