zoukankan      html  css  js  c++  java
  • 155. Min Stack (stack)

     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.

    Example:

    MinStack minStack = new MinStack();
    minStack.push(-2);
    minStack.push(0);
    minStack.push(-3);
    minStack.getMin();   --> Returns -3.
    minStack.pop();
    minStack.top();      --> Returns 0.
    minStack.getMin();   --> Returns -2.

    class MinStack {
    public:
        /** initialize your data structure here. */
        MinStack() {
           minValues.push(INT_MAX);
        }
        
        void push(int x) {
            if(x<=minValues.top()){
                minValues.push(x);
            }
            
            allValues.push(x);
        }
        
        void pop() {
            if(allValues.top()==minValues.top()){
                minValues.pop();
            }
            
            allValues.pop();
        }
        
        int top() {
            return allValues.top();
        }
        
        int getMin() {
            return minValues.top();
        }
    private:
        stack<int> allValues;
        stack<int> minValues;
    };
    
    /**
     * Your MinStack object will be instantiated and called as such:
     * MinStack obj = new MinStack();
     * obj.push(x);
     * obj.pop();
     * int param_3 = obj.top();
     * int param_4 = obj.getMin();
     */
  • 相关阅读:
    Java提高学习之Object(5)
    cmd命令。
    CacheView。
    快速界面:QML。
    抓包工具。
    打包安装程序。
    AS:加载新版本的SWF文件。
    as自定义菜单。
    as [Frame]元标签
    转载:Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/6552036.html
Copyright © 2011-2022 走看看