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

2021-10-06 15:27:44 字數 475 閱讀 7632

/**

* 包含min函式的棧

*/class minstack

/*** 新增乙個元素

* min棧永遠儲存最小的元素,當新增的元素比min棧棧頂的元素小時,則入棧,否則在新增一次min棧中棧頂的值

** @param val

*/public void push(int val)

data_stack.push(val);

min_stack.push(min);

}/**

* 直接從min棧中獲取就行

** @return

*/public int getmin()

return -1;

}/**

* 彈出乙個元素

** @return

*/public int pop()

return -1;

}}

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

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

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

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

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

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