1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| class MinStack { private: stack<int> st; stack<int> minSt; public: MinStack() {} void push(int val) { st.push(val); if (minSt.empty() || val <= minSt.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(); } };
|