code
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class MinStack { private: stack<int> s1; stack<int> s2; public: /** initialize your data structure here. */ MinStack() { } void push(int x) { if(s1.empty()||x<=getMin()) s2.push(x); s1.push(x); } void pop() { if(s1.top()==getMin()) s2.pop(); s1.pop(); } int top() { return s1.top(); } int getMin() { return s2.top(); } }; /** * Your MinStack object will be instantiated and called as such: * MinStack obj = new MinStack(); * obj.push(x); * obj.pop(); * int param_3 = obj.top(); * int param_4 = obj.getMin(); */
1.
https://leetcode.com/problems/min-stack/description/