题目连接:力扣
解法:
class MinStack {
public:
MinStack() {
getmin = INT_MAX;
}
void push(int val) {
getmin = min(getmin, val);
st.push(val);
}
void pop() {
if(st.top() == getmin)
{
st.pop();
getmin = INT_MAX;
stack<int> temp;
while(!st.empty())
{
temp.push(st.top());
getmin = min(getmin, st.top());
st.pop();
}
while(!temp.empty())
{
st.push(temp.top());
temp.pop();
}
}
else
st.pop();
}
int top() {
return st.top();
}
int getMin() {
return getmin;
}
int getmin;
stack<int> st;
};