包含min函数的栈
描述
设计一个支持push,pop,top等操作并且可以在O(1)时间内检索出最小元素的堆栈。
- push(x)–将元素x插入栈中
- pop()–移除栈顶元素
- top()–得到栈顶元素
- getMin()–得到栈中最小元素
样例
MinStack minStack = new MinStack();minStack.push(-1);minStack.push(3);minStack.push(-4);minStack.getMin(); --> Returns -4.minStack.pop();minStack.top(); --> Returns 3.minStack.getMin(); --> Returns -1.
代码
class MinStack {public: /** initialize your data structure here. */ stack s; stack mins; MinStack() { } void push(int x) { if( mins.empty() || x <= mins.top()){ mins.push(x); } s.push(x); } void pop() { if(s.top() == mins.top()) mins.pop(); s.pop(); } int top() { return s.top(); } int getMin() { return mins.top(); }};