class Solution {
public:
void push(int value)
{
st.push(value);//主栈输入一个数
if(smin.empty())//判断辅助栈2是否为空,如果为空直接入栈
{
smin.push(value);
}
else//如果不为空,判断与栈顶的大小
{
if(smin.top()>value)
smin.push(value);
}
}
void pop()
{
if(smin.top()==st.top())
//判断出栈的值是否为最小值
smin.pop();
st.pop();//栈1出栈
}
int top()
{
return st.top();
}
int min()
{
return smin.top();
}
private:
stack<int>st;
stack<int>smin;
};