zoukankan      html  css  js  c++  java
  • MinStack

    设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
    
    push(x) —— 将元素 x 推入栈中。
    pop() —— 删除栈顶的元素。
    top() —— 获取栈顶元素。
    getMin() —— 检索栈中的最小元素。
     
    
    示例:
    
    输入:
    ["MinStack","push","push","push","getMin","pop","top","getMin"]
    [[],[-2],[0],[-3],[],[],[],[]]
    
    输出:
    [null,null,null,null,-3,null,0,-2]
    
    解释:
    MinStack minStack = new MinStack();
    minStack.push(-2);
    minStack.push(0);
    minStack.push(-3);
    minStack.getMin();   --> 返回 -3.
    minStack.pop();
    minStack.top();      --> 返回 0.
    minStack.getMin();   --> 返回 -2.
     
    
    提示:
    
    pop、top 和 getMin 操作总是在 非空栈 上调用。
    
    class MinStack {
    
        private Stack<Integer> dataStack;
        private Stack<Integer> minStack;
        /** initialize your data structure here. */
        public MinStack() {
            dataStack = new Stack<>();
            minStack = new Stack<>();
        }
    
        public void push(int x) {
            dataStack.push(x);
            if(minStack.isEmpty() || x <= minStack.peek()){
                minStack.push(x);
            }
        }
    
        public void pop() {
            int x = dataStack.pop();
            if(x == minStack.peek()){
                minStack.pop();
            }
        }
    
        public int top() {
            return dataStack.peek();
        }
    
        public int getMin() {
            return minStack.peek();
        }
    }
    
    /**
     * 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();
     */
    

    // 应该还有更好的办法

  • 相关阅读:
    Linux下安装LoadRunner LoadGenerator
    Pytorch中的model.named_parameters()和model.parameters()
    Pytorch取最小或最大的张量索引
    Pytorch之permute函数
    softmax上溢和下溢
    Explainable ML
    ML对抗攻击
    Typora快捷键记录
    ubuntu查看目录大小
    在服务器之间传输文件
  • 原文地址:https://www.cnblogs.com/athony/p/13059961.html
Copyright © 2011-2022 走看看