lintcode 12 帶最小值操作的棧

2022-03-10 11:13:07 字數 614 閱讀 1460

class

minstack

/** @param number: an integer

* @return: nothing

*/void push(int

number)

else

num.push(number);

}/** @return: an integer

*/int

pop()

else

}/** @return: an integer

*/int

min()

return0;

}};

這個題目的思想是,肯定要有乙個結構來儲存最小值。

起初我想的是可以只用乙個數就能儲存最小值嗎,顯然不太可能,因為我們只能訪問棧頂獲得資料。

那麼就用第二個棧來儲存這個最小 資料,又是不是不用儲存多個資料,在每次彈出壓入的時候就把資料整理好?也不太可能,因為在資料出棧的時候,那相應min堆疊裡的也要出去,並不能保證它就在棧頂,所以這也不可能。

所以只能是儲存每一次對資料棧進行操作時候的最小值。

另外,還有乙個細節,這裡c++的pop()是沒有返回值的,只能用top()去獲取值。

LintCode 12 帶最小值操作的棧

實現乙個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。你實現的棧將支援push,pop 和 min 操作,所有操作要求都在o 1 時間內完成。注意事項 如果堆疊中沒有數字則不能進行min方法的呼叫如下操作 push 1 pop push 2 push 3 min push 1 min...

Lintcode 12 帶最小值操作的棧

中文english 實現乙個棧,支援以下操作 要求 o 1 開銷.樣例 2 輸入 push 1 min push 2 min push 3 min 輸出 1 1 1保證棧中沒有數字時不會呼叫min 借助最小輔助棧,每次呼叫min方法,返回最小輔助棧的棧頂元素 public class minstac...

LintCode練習 12 帶最小值操作的棧

題目描述 實現乙個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。你實現的棧將支援push,pop 和 min 操作,所有操作要求都在o 1 時間內完成。樣例如下操作 push 1 pop push 2 push 3 min push 1 min 返回 2,1 思路 使用兩個列表mda...