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

2021-09-22 07:54:27 字數 373 閱讀 1822

定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式(時間複雜度應為o(1))。

解題思路:

剛開始看到這個題還以為是要自己實現棧的底層資料結構,原來是借助stack棧的資料結構設計演算法即可,一般筆試題也不會考寫底層實現,倒是面試的時候有可能會考實現底層資料結構,如實現string類,寫乙個linklist等。該題的思路是借助乙個輔助棧來維護最小的元素的儲存。

解題**:

class solution 

}void pop()

int top()

int min()

};

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

思路 在棧的結構裡面不能實現排序,所以排序的方法行不通。這裡的思路還是挺巧妙的,就是建立乙個輔助棧,裡面存放的第乙個元素就是棧的最小值,具體怎麼實現可以看下面這個 以後要把建立輔助空間來解決問題當做一種常見的思路進行考慮,特別是遇到佇列 棧結構的問題的時候要嘗試著這種思路。templatevoid ...

劍指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...