(劍指Offer 牛客網)包含min函式的棧

2021-09-26 21:13:06 字數 410 閱讀 6061

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

借鑑了他人思路。自己分析不夠,以為需要排序,其實棧的「先進後出」規則決定了:如果後壓入的元素都不影響當前最小值,那麼這些元素在出棧時也不影響最小值。因此只需要用stack模擬常規的棧,用min_record記錄在壓棧過程中會影響到最小值的那些元素即可。

注意:1. end() 指向的是尾後元素,取尾元素需要減一; 2. 在pop中先進行元素比較再執行出棧操作

class solution 

void pop()

int top()

int min()

};

牛客網 劍指Offer 索引

二維陣列中的查詢 替換空格 從尾到頭列印鍊錶 重建二叉樹 用兩個棧實現佇列 旋轉陣列的最小數字 斐波那契數列 跳台階 跳台階 矩形覆蓋 二進位制中1的個數 數值的整數次方 調整陣列順序使奇數字於偶數前面 鍊錶中倒數第k個結點 反轉鍊錶 合併兩個排序的鍊錶 樹的子結構 二叉樹的映象 順時針列印矩陣 包...

牛客網 劍指Offer 索引

二維陣列中的查詢 替換空格 從尾到頭列印鍊錶 重建二叉樹 用兩個棧實現佇列 旋轉陣列的最小數字 斐波那契數列 跳台階 跳台階 矩形覆蓋 二進位制中1的個數 數值的整數次方 調整陣列順序使奇數字於偶數前面 鍊錶中倒數第k個結點 反轉鍊錶 合併兩個排序的鍊錶 樹的子結構 二叉樹的映象 順時針列印矩陣 包...

牛客網 劍指offer 遞迴 (1)

出現的問題 原因 返回值沒有考慮到所有情況 輸入引數n是乙個整數,自己只考慮n 0,n 1,n 2,n 39的情況,一直報錯。改正方案 加上else,判斷其他情況均輸出0,編譯通過 菲波那切數列數列有很多變形的問題 問題1 兔子問題 題目描述 已知一對兔子每乙個月可以生一對小兔子,而一對兔子出生後....