題目:
設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。
示例:
minstack minstack = new minstack();minstack.push(-2);
minstack.push(0);
minstack.push(-3);
minstack.getmin(); --> 返回 -3.
minstack.pop();
minstack.top(); --> 返回 0.
minstack.getmin(); --> 返回 -2.
解題思路:
使用兩個棧,乙個棧儲存所有的運算元,另外乙個棧儲存當前的最小元素。每次新元素入棧時,同時將當前棧的最小元素也入棧,出棧時同樣執行相同的操作。
vectorval;/*儲存所有元素×/vector
minval;/×儲存當前棧的最小元素×/
**實現:
classminstack
void push(int
x) else
}void
pop()
inttop()
intgetmin()
private
: vector
val;
vector
minval;
};/*
* * your minstack object will be instantiated and called as such:
* minstack obj = new minstack();
* obj.push(x);
* obj.pop();
* int param_3 = obj.top();
* int param_4 = obj.getmin();
*/
LeetCode 簡單 棧 155 最小棧
設計乙個支援 push pop top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 輸入 minstack push push push getmin pop top getmin...
swift演算法 最小棧
1 描述 設計乙個支援push pop top操作,並且能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中 pop 刪除棧頂的元素 top 獲取棧頂的元素 getmin 檢索棧中的最小元素 例1 var minstack minstack.init minstack.push 2 ...
leetcode題 155 最小棧(簡單)
一 題目描述 155.最小棧 簡單 設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 minstack minstack new minstack...