成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【刷算法】LeetCode.155-最小棧

wing324 / 1294人閱讀

摘要:題目描述設(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

相關(guān)文章

  • LeetCode 155最小 Min Stack

    摘要:刪除棧頂?shù)脑???梢粤硗庑陆ㄒ粋€棧來順序存入數(shù)據(jù)最小值。另外在數(shù)據(jù)入棧時需要判斷該值是否比輔助棧的棧頂元素的值更小,如果更小,也應(yīng)該將它加入輔助棧。并且需要判斷輔助棧是否為空,在不空的條件下才可以取棧頂元素比較,否則會溢出。 LeetCode 155:最小棧 Min Stack 設(shè)計一個支持 push,pop,top 操作,并能在常數(shù)時間內(nèi)檢索到最小元素的棧。 push(x) -- ...

    LeexMuller 評論0 收藏0
  • 力扣(LeetCode)155

    摘要:題目地址題目描述設(shè)計一個支持,,操作,并能在常數(shù)時間內(nèi)檢索到最小元素的棧。將元素推入棧中。刪除棧頂?shù)脑?。示例返回返回返回解答每次入棧都放入兩個元素,分別是當前元素,和當前的最小元素因此放入之前需要和當前值進行比較。 題目地址:https://leetcode-cn.com/probl...題目描述:設(shè)計一個支持 push,pop,top 操作,并能在常數(shù)時間內(nèi)檢索到最小元素的棧。 p...

    Scliang 評論0 收藏0
  • 算法】包含min函數(shù)的

    摘要:題目描述定義棧的數(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操作,那么最小元素會被彈出,新的最小元素又上哪兒找呢?比較暴力的方...

    justCoding 評論0 收藏0
  • 從簡歷被拒到收割今日頭條 offer,我用一年時間破繭成蝶!

    摘要:正如我標題所說,簡歷被拒??戳宋液啔v之后說頭條競爭激烈,我背景不夠,點到為止。。三準備面試其實從三月份投遞簡歷開始準備面試到四月份收,也不過個月的時間,但這都是建立在我過去一年的積累啊。 本文是 無精瘋 同學(xué)投稿的面試經(jīng)歷 關(guān)注微信公眾號:進擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無精瘋 同學(xué)的分享 目錄: 印象中的頭條 面試背景 準備面試 ...

    tracymac7 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<