帶最小值操作的棧

2021-08-06 07:00:10 字數 839 閱讀 5994

描述:實現乙個帶有取最小值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方法的呼叫 樣...