簡單演算法 39 最小棧

2022-08-01 07:15:11 字數 982 閱讀 9275

題目:

設計乙個支援 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;/×儲存當前棧的最小元素×/

**實現:

class

minstack

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...