力扣 面試題 03 02 棧的最小值 雙棧

2021-10-09 03:30:45 字數 1149 閱讀 5456

思路:搞個雙棧,乙個棧就做正常的操作,另外乙個棧搞成單調非增的即可。有兩種實現方式。

class

minstack

void

push

(int x)

void

pop(

)int

top(

)int

getmin()

private

://正常的棧

stack<

int> s;

//單調非公升棧

stack<

int> min;};

/** * your minstack object will be instantiated and called as such:

* minstack* obj = new minstack();

* obj->push(x);

* obj->pop();

* int param_3 = obj->top();

* int param_4 = obj->getmin();

*/

class

minstack

void

push

(int x)

void

pop(

)int

top(

)int

getmin()

private

://正常的棧

stack<

int> s;

//單調非公升棧

stack<

int> min;};

/** * your minstack object will be instantiated and called as such:

* minstack* obj = new minstack();

* obj->push(x);

* obj->pop();

* int param_3 = obj->top();

* int param_4 = obj->getmin();

*/

面試題 03 02 棧的最小值

請設計乙個棧,除了常規棧支援的pop與push函式以外,還支援min函式,該函式返回棧元素中的最小值。執行push pop和min操作的時間複雜度必須為o 1 示例 minstack minstack newminstack minstack.push 2 minstack.push 0 minst...

面試題 03 02 棧的最小值

請設計乙個棧,除了常規棧支援的pop與push函式以外,還支援min函式,該函式返回棧元素中的最小值。執行push pop和min操作的時間複雜度必須為o 1 示例 minstack minstack new minstack minstack.push 2 minstack.push 0 mins...

面試題 03 02 棧的最小值

請設計乙個棧,除了常規棧支援的pop與push函式以外,還支援min函式,該函式返回棧元素中的最小值。執行push pop和min操作的時間複雜度必須為o 1 示例 minstack minstack new minstack minstack.push 2 minstack.push 0 mins...