LeetCode演算法題 最小棧MinStack

2021-09-24 04:49:34 字數 789 閱讀 5042

設計乙個支援 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,...