题解 | #包含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();
}
};

查看8道真题和解析