美文网首页
155. 最小栈

155. 最小栈

作者: 名字是乱打的 | 来源:发表于2021-11-02 22:26 被阅读0次

    题目:

    设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
    *
    * push(x) —— 将元素 x 推入栈中。
    * pop() —— 删除栈顶的元素。
    * top() —— 获取栈顶元素。
    * getMin() —— 检索栈中的最小元素。

    思路:

    • 辅助栈法,stack就是我们的普通栈,minstack存储当前栈内的最小值
    • 每次进栈的时候添加一个当前最小值到最小值栈里,出栈的时候弹出一次当前的最小值

    代码:

    class MinStack {
        private Stack<Integer> stack;
        private Stack<Integer> minStack;
    
        public MinStack() {
            stack=new Stack<>();
            minStack=new Stack<>();
        }
    
        public void push(int val) {
            stack.push(val);
            if (minStack.isEmpty()||val<minStack.peek()){
                minStack.push(val);
            }else{
                minStack.push(minStack.peek());
            }
        }
    
        public void pop() {
            stack.pop();
            minStack.pop();
        }
    
        public int top() {
            return stack.peek();
        }
    
        public int getMin() {
            return minStack.peek();
        }
    }
    
    

    相关文章

      网友评论

          本文标题:155. 最小栈

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