题目
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
push(x) – Push element x onto stack.
pop() – Removes the element on top of the stack.
top() – Get the top element.
getMin() – Retrieve the minimum element in the stack.
解答
void push(int value) {
dataStack.push(value);
if(minStack.empty() || value<minStack.top())
minStack.push(value);
else
minStack.push(minStack.top());
}
void pop() {
if(!dataStack.empty())
dataStack.pop();
if(!minStack.empty())
minStack.pop();
}
int top() {
return dataStack.top();
}
int min() {
return minStack.top();
}
stack<int> dataStack;
stack<int> minStack;