标签:style blog color sp div log ad amp as
实现O(1)时间取得栈最小值。
基本思路是新建一个minstack的栈,维护minstack的从上到下递增序,栈顶位当前stack最小值。
当push时比较如果比minstack栈顶小于或等于就push进去,pop的时候如果要pop的元素与minstack栈顶相等从minstack同时pop。
class MinStack { private: stack<int> s,minStack; public: void push(int x) { s.push(x); if (minStack.empty() || x<=minStack.top()) { minStack.push(x); } } void pop() { if (!minStack.empty() && s.top()==minStack.top()) minStack.pop(); s.pop(); } int top() { return s.top(); } int getMin() { return minStack.top(); } };
标签:style blog color sp div log ad amp as
原文地址:http://www.cnblogs.com/mintmy/p/4162312.html