描述:實現乙個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。
你實現的棧將支援push,pop 和 min 操作,所有操作要求都在o(1)時間內完成。
樣例:
push(1)
pop()
// return 1
push(2)
push(3)
min()
// return 2
push(1)
min()
// return 1
思路:剛開始沒理解初始化什麼意思,以為按照常規建立乙個結構體,裡面包含int *ele;int top;int stacksize;//堆疊首位址,堆疊實時偏離首位址的個數,堆疊的元素個數。可是後面編譯,會出現後面幾個函式提示未識別的資料型別。後面參考網上,居然想到用容器,直接建立乙個堆疊容器stackstk
來解決初始化的問題。因為要涉及到求最小值,所以再建立乙個容器stackminstk
用來儲存最小值。
容器會自動定位到當前位置,存入直接用push()函式,彈出用pop()函式,top()函式返回的即是容器棧的棧頂元素;empty()用來判斷容器是否為空,為空返回真。
拓展:容器常用的資料結構有 deque(佇列)、list(鍊錶)、vector(向量)、map (圖)、stack(棧),建立**即是資料結構《資料型別》 變數名
。
class minstack
}int pop()
return top;
}int min()
};
12 帶最小值操作的棧
實現乙個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。你實現的棧將支援push,pop和min操作,所有操作要求都在o 1 時間內完成。樣例如下操作 push 1 pop push 2 push 3 min push 1 min 返回1,2,1 public class minsta...
OneBug 帶最小值操作的棧
實現乙個棧,支援以下操作 push val 將 val 壓入棧 pop 將棧頂元素彈出,並返回這個彈出的元素 min 返回棧中元素的最小值 要求 o 1 開銷.保證棧中沒有數字時不會呼叫 min 樣例 輸入 push 1 min push 2 min push 3 min 輸出 111 一開始我想的...
Lintcode 帶最小值的棧
帶最小值操作的棧 描述 筆記 資料 評測 實現乙個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。你實現的棧將支援push,pop 和 min 操作,所有操作要求都在o 1 時間內完成。您在真實的面試中是否遇到過這個題?yes 注意事項 如果堆疊中沒有數字則不能進行min方法的呼叫 樣...