LeetCode 155. 最小栈
设计一个支持pushpoptop操作并能在常数时间内检索到最小元素的栈。实现MinStack类:MinStack()初始化堆栈对象。void push(int val)将元素val推入堆栈。void pop()删除堆栈顶部的元素。int top()获取堆栈顶部的元素。int getMin()获取堆栈中的最小元素。示例 1:输入[MinStack,push,push,push,getMin,pop,top,getMin] [[],[-2],[0],[-3],[],[],[],[]]输出[null,null,null,null,-3,null,0,-2]解释MinStack minStack new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); -- 返回 -3. minStack.pop(); minStack.top(); -- 返回 0. minStack.getMin(); -- 返回 -2.提示-231 val 231 - 1pop、top和getMin操作总是在非空栈上调用push,pop,top, andgetMin最多被调用3 * 104次class MinStack { private: stackint st; stackint minSt; public: MinStack() { } void push(int val) { st.push(val); if(minSt.empty()||valminSt.top()) { minSt.push(val); } } void pop() { if(st.top()minSt.top()) minSt.pop(); st.pop(); } int top() { return st.top(); } int getMin() { return minSt.top(); } }; /** * Your MinStack object will be instantiated and called as such: * MinStack* obj new MinStack(); * obj-push(val); * obj-pop(); * int param_3 obj-top(); * int param_4 obj-getMin(); */