题解 | #包含min函数的栈#
包含min函数的栈
https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49
class Solution { private: stack<int> stk1; stack<int> stk2; public: void push(int value) { stk1.push(value); if(stk2.empty()){ stk2.push(value); } if(stk2.empty() == false && stk2.top() >= value){ stk2.push(value); } } void pop() { int top_val = stk1.top(); if(top_val == stk2.top()){ stk2.pop(); } stk1.pop(); } int top() { return stk1.top(); } int min() { return stk2.top(); } };
借助辅助栈存储最小元素。注意事项:如果辅助栈为空,则直接将输入元素放入辅助栈。否则当插入元素不小于栈顶元素时插入辅助栈。