Stack: 能夠在O(1)取得最小值的MinStack

文章推薦指數: 80 %
投票人數:10人

眾所皆知,若手上處理的資料結構是Stack,除了「最上面」的資料可以輕易讀取(利用top()),若要知道Stack中的其餘資料,就只能透過從Stack的最上方把資料一個一個pop()後,才能檢視,時間複雜度為O(\(N\))。

如果想要在O(\(1\))的時間複雜度取得Stack中的「最小值」資料,該如何設計呢?圖一。

以圖一為例,因為圖一是Stack的剖面圖,所以很容易可以看出,目前Stack中的最小值為\(4\)。

但是一般的Stack並沒有提供剖面圖這種東西,只能透過函式top()來得知Stack「最



請為這篇文章評分?