劍指offer面試題30 包含min函式的棧

2021-09-29 16:23:16 字數 902 閱讀 6084

思路:

在棧的結構裡面不能實現排序,所以排序的方法行不通。這裡的思路還是挺巧妙的,就是建立乙個輔助棧,裡面存放的第乙個元素就是棧的最小值,具體怎麼實現可以看下面這個**:

以後要把建立輔助空間來解決問題當做一種常見的思路進行考慮,特別是遇到佇列、棧結構的問題的時候要嘗試著這種思路。

**:

templatevoid stackwithmin::push(const t& value)

templatevoid stackwithmin::pop()

templateconst t&stackwithmin::min() const

上面的函式時類模板的成員函式的定義方式,const表示只進行讀取操作,不改變變數的值,

templateconst t&stackwithmin::min() const定義的是乙個以引用的形式返回函式結果的類的常成員函式。

複習:

主要是類模板的寫法和類模板成員函式的外部定義方式。這裡輔助棧的思路非常巧妙。要記住這種用法。

二刷**:

#include #includeusing namespace std;

templateclass stackwithmin

;templatevoid stackwithmin::push(const t& value)

templateconst t& stackwithmin::min()const

劍指Offer面試題30 包含min函式的棧

定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式 時間複雜度應為o 1 解題思路 剛開始看到這個題還以為是要自己實現棧的底層資料結構,原來是借助stack棧的資料結構設計演算法即可,一般筆試題也不會考寫底層實現,倒是面試的時候有可能會考實現底層資料結構,如實現string類...

劍指offer 面試題30 包含min函式的棧

問題 定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式 時間複雜度應為o 1 注意 保證測試中不會當棧為空的時候,對棧呼叫pop 或者min 或者top 方法。輸入 類 輸出 類中的成員函式實現 思路 設計乙個輔助棧,入棧時,將數與輔助棧的棧頂數字相比較,如果數大於棧頂數,...

劍指Offer學習 面試題30 包含min函式的棧

包含min函式的棧 class minstack 新增乙個元素 min棧永遠儲存最小的元素,當新增的元素比min棧棧頂的元素小時,則入棧,否則在新增一次min棧中棧頂的值 param val public void push int val data stack.push val min stack...