设计一个栈结构,满足一下条件:min,push,pop 操作的时间复杂度为O(1)。
/*
40.百度研发笔试题
引用自:zp155334877
1)设计一个栈结构,满足一下条件:min,push,pop 操作的时间复杂度为O(1)。
*/
class MinStack
{
private:
stack<int> minst;
stack<int> st;
public:
void push(int value)
{
if(st.empty())
{
minst.push(value);
st.push(value);
}
else
{
int min=minst.top();
if(value<min)
minst.push(value);
else
minst.push(min);
}
}
void pop()
{
st.pop();
minst.pop();
}
int min()
{
return minst.top();
}
};