2 設計包含min 函式的棧。

2021-06-27 13:35:50 字數 479 閱讀 8853

題目描述:

定義棧的資料結構,要求新增乙個min 函式,能夠得到棧的最小元素。

要求函式min、push 以及pop 的時間複雜度都是o(1)。

分析:這種題其實是相當的簡單,只需要多開乙個棧,用來儲存最小的元素,然後就能做到時間複雜度都是o(1)。

**實現:

#include#include#includeusing namespace std;

struct stackgetmin

bool pop()

bool getmin(int &min) }

};int main()

{ stackgetmin stackmin;

stackmin.push(2);

stackmin.push(6);

stackmin.push(4);

int min;

stackmin.getmin(min);

cout<

2 設計包含min 函式的棧

2.設計包含min 函式的棧。定義棧的資料結構,要求新增乙個min 函式,能夠得到棧的最小元素。要求函式min push 以及pop 的時間複雜度都是o 1 思路 1 min,push,pop都需要時間複雜度為o 1 所以樹,堆等資料結構都不能用 2 棧只有通過push來新增元素,pop來刪除元素,...

設計包含min函式的棧

本文 題目 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 分析 這是去年google的一道面試題。我看到這道題目時,第一反應就是每次push乙個新元素時,將棧裡所有逆序元素排序。這樣棧頂元素將是最小元素。但由於不能保證最後p...

設計包含min函式的棧

定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素,要求函式min,push及pop的時間複雜度都是o 1 棧的資料結構包含兩個普通棧,乙個棧存資料,另乙個棧存最小值 或最小值的位置,如果用stl裡的棧,則不能存最小值的位置,因為stl裡的stack不支援下標索引訪問 cpp view ...