题解 | #包含min函数的栈#
包含min函数的栈
https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49
W:
类似于单调栈,建立一个辅助栈,要求栈中元素单调不增
N:
注意空的时候也可以入栈 st_de.empty()
pop时注意非空,两个栈一起出
class Solution { stack<int> st; stack<int> st_de; public: void push(int value) { if(st_de.empty() ||value<st_de.top()){ st_de.push(value); }else{ st_de.push(st_de.top()); } st.push(value); } void pop() { if(!st.empty()){ st.pop(); st_de.pop(); } } int top() { // if(!st.empty()) return st.top(); } int min() { // if(!st_de.empty()) return st_de.top(); } };