题目
分析
维护一个最小栈,始终保持栈顶元素是最小元素
代码
#include
using std::stack;
class MinStack
{
public:
/** initialize your data structure here. */
MinStack()
{
MinStack().push(INT_MAX);
}
stack stack1 ,minStack;
void push(int x)
{
stack1.push(x);
//维护最小栈,将栈顶维持为最小元素
minStack.push(std::min(minStack.top(),x));
}
void pop()
{
stack1.pop();
minStack.pop();
}
int top()
{
return stack1.top();
}
int min()
{
return minStack.top();
}
};