02設計包含min函式的棧

2021-07-04 01:14:33 字數 778 閱讀 9610

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

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

思路:元素結構裡包含乙個min域,表示當前元素壓棧後,當前棧內的最小元素的值。

#include using namespace std;

#define stack_size 10

class stackelement

~stackelement() {}

public:

int m_value;

int m_min; // the current minimum value in stack

};class stackwithmin

~stackwithmin()

void push(int a)

m_data[m_size].m_value = a;

if(m_size == 0)

else

else

} cout<0)

else

} int min()

else

}private:

stackelement* m_data;

int m_size;

};int main()

; stackwithmin* stack = new stackwithmin();

for (int i=0; ipush(a[i]);

} cout

100題 02 設計包含min函式的棧

題目 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 以下是 pragma once template typename t class stack template typename t class stack node t...

設計包含min函式的棧

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

設計包含min函式的棧

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