标签:
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
Example:
MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); --> Returns -3. minStack.pop(); minStack.top(); --> Returns 0. minStack.getMin(); --> Returns -2.
Subscribe to see which companies asked this question
c++ code:
class MinStack {
public:
void push(int x) {
S.push(x);
if(!minS.empty())
x = x < minS.top()? x:minS.top();
minS.push(x);
}
void pop() {
if(!S.empty()) S.pop();
minS.pop();
}
int top() {
return S.top();
}
int getMin() {
return minS.top();
}
private:
stack<int> S,minS;
};标签:
原文地址:http://blog.csdn.net/itismelzp/article/details/51331548