• 155. 最小栈 (辅助栈)


     

    难度简单

    设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

    实现 MinStack 类:

    • MinStack() 初始化堆栈对象。
    • void push(int val) 将元素val推入堆栈。
    • void pop() 删除堆栈顶部的元素。
    • int top() 获取堆栈顶部的元素。
    • int getMin() 获取堆栈中的最小元素。
    class MinStack {
    
    public:
        stack<int> stk;
        stack<int> stk_min;
        stk_min.push(INT_MAX);
        MinStack() {
        }
        
        void push(int val) {
            stk.push(val);
            if (val < stk_min.top()) {
                stk_min.push(val);
            } else {
                stk_min.push(stk_min.top());
            }
        }
        
        void pop() {
            stk.pop();
            stk_min.pop();
        }
        
        int top() {
            return stk.top();
        }
        
        int getMin() {
            return stk_min.top();
        }
    };
    
    /**
     * Your MinStack object will be instantiated and called as such:
     * MinStack* obj = new MinStack();
     * obj->push(val);
     * obj->pop();
     * int param_3 = obj->top();
     * int param_4 = obj->getMin();
     */
  • 相关阅读:
    NanoHTTPD服务
    Pattern、Matcher的用法
    浅析protobuf应用
    Socket通信,基本方法介绍
    String常用处理方法
    什么是重做日志?
    控制文件数据字典视图
    删除控制文件
    使用当前副本恢复控制文件
    备份控制文件
  • 原文地址:https://www.cnblogs.com/zle1992/p/16142383.html
Copyright © 2020-2023  润新知