刷演算法 包含min函式的棧

2021-09-11 12:12:47 字數 530 閱讀 6696

定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。

該題目要求實現乙個帶有返回當前棧中最小元素功能的資料結構,首先會想到使用乙個變數儲存當前最小元素的下標,但是仔細一想,如果當前最小元素剛好在棧頂,此時執行pop操作,那麼最小元素會被彈出,新的最小元素又上哪兒找呢?比較暴力的方法是出現這種情況時,再遍歷一遍棧就能重新得到最小元素的下標,但是這麼暴力操作就沒意思了而且時間複雜度很好。

可以使用雙棧來實現min功能,棧1常規儲存元素,棧2儲存此時此刻的棧中最小 元素,比如說有元素進棧1,如果該元素小於棧2的棧頂元素,說明新的最小元素就是該進棧元素,否則,最小元素還是棧2的棧頂元素。

var stack1 = ;

var stack2 = ;

function push(node)

else

}function

pop()

function

top()

function

min()

複製**

刷演算法 包含min函式的棧

定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。該題目要求實現乙個帶有返回當前棧中最小元素功能的資料結構,首先會想到使用乙個變數儲存當前最小元素的下標,但是仔細一想,如果當前最小元素剛好在棧頂,此時執行pop操作,那麼最小元素會被彈出,新的最小元素又上哪兒找呢?比較暴力的方法是...

js 包含min函式的棧 包含min函式的棧

目標 定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的 min 函式在該棧中,呼叫 min push 及 pop 的時間複雜度都是 o 1 設計思路 我們要做的是在我們每次資料入棧的時候,記錄當前資料棧中最小值,並且在pop 出棧之後依然能找到最小值 方案 如果只用乙個 min 變數來儲...

演算法題目 包含min函式的棧

定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。在該棧中,呼叫min,push及pop的時間複雜度都是o 1 解題關鍵是,新增乙個輔助棧 include include include include using namespace std templateclass stac...