請設計乙個棧,除了常規棧支援的pop與push函式以外,還支援min函式,該函式返回棧元素中的最小值。執行push、pop和min操作的時間複雜度必須為o(1)。
自定義棧,獲取最小值,時間複雜度是o(1)
使用乙個資料結構儲存自定義棧的元素,list,queue,deque,stack
2、時間複雜度為1時候,輸出最小值,肯定得隨壓棧時候,就得儲存住那個最小值,而且不是只呼叫這個最小值一次,所以只維護乙個變數tem暫存最小值不行,這個獲取最小值函式得重複呼叫多次,
3、維護兩個棧,輔助棧儲存最小值
class的結構,
類的建構函式
class
minstack
// 類的建構函式,沒有返回值,也不用形參,也沒有實際的函式體
void
push
(int x)
void
pop(
)int
top(
)int
getmin()
};/** * your minstack object will be instantiated and called as such:
* minstack* obj = new minstack();
* obj->push(x);
* obj->pop();
* int param_3 = obj->top();
* int param_4 = obj->getmin();
*/
棧找最小值問題
question 實現乙個特殊的棧,在實現棧的基本功能的基礎上,在實現回棧中最小元素的操作 thinking sketch 定義倆個棧。同時壓入同時彈出,比如說乙個data,乙個min,當data棧新壓入的數大於min的棧頂,重複壓入min棧頂數 detailed 分別定義data,min倆個棧,p...
3 2 棧的最小值
ntm inim um int minimum intmin imum 其時間複雜度為o 1 o 1 o 1 該演算法的缺點是當棧中元素較多時浪費了較多空間。以下是實現 和測試 測試結果如圖1所示。實現 class nodewithmin nodewithmin operator nodewithm...
面試題 03 02 棧的最小值
請設計乙個棧,除了常規棧支援的pop與push函式以外,還支援min函式,該函式返回棧元素中的最小值。執行push pop和min操作的時間複雜度必須為o 1 示例 minstack minstack newminstack minstack.push 2 minstack.push 0 minst...