設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。
push(x) -- 將元素 x 推入棧中。
pop() -- 刪除棧頂的元素。
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.
思路:stack類維護乙個私有變數int_val與乙個堆疊,然後對它們進行操作
**如下
class minstack
//如果x是最小的,就向棧放兩個,把之前最小的壓進來,然後壓x
public void push(int x)
st.push(x);
}如果取出來的元素是當前最小的,那麼取兩個,把最小值置為上一次的最小值
public void pop()
}public int top()
public int getmin()
}
每次push兩個與pop兩個是為了保留之前的最小值。 leetcode題 155 最小棧(簡單)
一 題目描述 155.最小棧 簡單 設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack...
LeetCode第155題 最小棧
設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack minstack.push 2 m...
LeetCode刷題筆記 155 最小棧
設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。略看sdc1的時候感覺getmin 有問題,但其實push 和pop 寫的很巧妙 比如依次錄入5,4,...