首页 > 代码库 > leetcode:min stack
leetcode:min stack
实现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(); }};
leetcode:min stack
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。