美文网首页
LeetCode: Min Stack最小值栈

LeetCode: Min Stack最小值栈

作者: 静之先生 | 来源:发表于2015-07-11 01:35 被阅读270次

睡不着,起来写道题

言归正传:

  • 其实这道题很简单,不过我之前腾讯的实习生面试的时候还遇到过这道题,所以还是可以做做,其实最主要的思路就是一点,创建一个新的栈min用来记录在当前状态下本来那个栈stk的最小值.最小值就是min栈的栈顶。
class MinStack {
public:
    stack<int> stk;
    stack<int> min;
    void push(int x) {
        stk.push(x);
        if(min.empty() || x<=min.top())
        {
            min.push(x);
        }
    }

    void pop() {
        if(min.top() == stk.top()) 
        {
            min.pop();
        }
        stk.pop();
    }

    int top() {
       return stk.top();
    }

    int getMin() {
        return min.top();
    }
};

相关文章

网友评论

      本文标题:LeetCode: Min Stack最小值栈

      本文链接:https://www.haomeiwen.com/subject/qjluqttx.html