題目描述
定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。
開始蹦出來的想法:用乙個變數來儲存最小的元素,每次壓入乙個新元素進棧時,如果該元素比最小元素小,則更新最小元素。但是存在的問題是如果當前最小的元素彈出棧了,如何得到下乙個最小的元素,所以該方法行不通。
需要做到最小元素出棧了,能找到次小元素,次小元素出棧了,能找到再次小元素…
所以最後的做法就是把每次的最小元素都儲存起來放到乙個輔助棧裡。
運算元據棧
輔助棧最小值
入棧 333
3入棧4
3 43 3
3入棧2
3 4 2
3 3 2
2入棧1
3 4 2 1
3 3 2 11出棧
3 4 2
3 3 22出棧
3 43 3
3min即為輔助棧的棧頂元素
關鍵:用乙個棧去維護最小值。
class solution
else
}void
pop()}
inttop()
intmin()
private:
stack<
int> datastack;
stack<
int> minstack;
};
js 包含min函式的棧 包含min函式的棧
目標 定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的 min 函式在該棧中,呼叫 min push 及 pop 的時間複雜度都是 o 1 設計思路 我們要做的是在我們每次資料入棧的時候,記錄當前資料棧中最小值,並且在pop 出棧之後依然能找到最小值 方案 如果只用乙個 min 變數來儲...
包含min函式的棧
題目描述 定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。輸入 輸入可能包含多個測試樣例,輸入以eof結束。對於每個測試案例,輸入的第一行為乙個整數n 1 n 1000000 n代表將要輸入的操作的步驟數。接下來有n行,每行開始有乙個字母ci。ci s 時,接下有乙個數字k,代...
包含min函式的棧
1.問題描述 定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的函式,在該棧中呼叫min,push及pop的時間複雜度都為o 1 來自 劍指offer 2.分析 我們可以使用乙個輔助棧,專門來處理題目中得到棧的最小元素的函式時間複雜度為o 1 的這個需求。當我們壓棧時,另外乙個棧正常進行,...