題目描述:
定義棧的資料結構,要求新增乙個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 ...