zoukankan      html  css  js  c++  java
  • leetCode(45):Min Stack 分类: leetCode 2015-07-20 08:34 139人阅读 评论(0) 收藏

    Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

    • push(x) -- Push element x onto stack.
    • pop() -- Removes the element on top of the stack.
    • top() -- Get the top element.
    • getMin() -- Retrieve the minimum element in the stack.
    class MinStack {
    public:
        void push(int x) {
            data.push(x);//数据栈正常压入
            if(minData.empty())
            {//最小栈数据栈压入时要进行判断,如果被压入的数据不影响最小值,则直接再压入
    //最小栈栈顶元素,否则压入x
                minData.push(x);
            }
            else
            {
                if(x<minData.top())
                {
                    minData.push(x);
                }
                else
                {
                    minData.push(minData.top());
                }
            }
        }
    
        void pop() {//弹出时,两个栈都需要弹出
            data.pop();
            minData.pop();
        }
    
        int top() {
            return data.top();
        }
    
        int getMin() {
            return minData.top();
        }
        
    private:
        stack<int> data;
        stack<int> minData;
    };



  • 相关阅读:
    gcd
    Kuglarz
    三分题解
    杜教筛
    第一组dp解题报告
    dp总结1
    cf-BitwiseXor
    6.6总结
    图论总结
    CF1309总结
  • 原文地址:https://www.cnblogs.com/zclzqbx/p/4687052.html
Copyright © 2011-2022 走看看