classminstack
/** @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...