Java教程

力扣 155. 最小栈

本文主要是介绍力扣 155. 最小栈,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目:

 

分析:

        原本傻傻的自己写了个栈,写完一看题解可以用stack,在下面有个评论说面试时问到怎么不用辅助栈,于是结合思考了一下,自己写了一下代码。

        他就是在原有栈存一个int的情况下,扩城int[ ]存放两个元素,一个是val,一个是动态规划下来现有栈的最小值。

代码:

class MinStack {
    private Stack<int[]> stack=new Stack<>();
    public MinStack() {
        
    }
    
    public void push(int val) {
        if(stack.isEmpty()){
            stack.push(new int[]{val,val});
        }else{
            int[] x=stack.peek();
            stack.push(new int[]{val,Math.min(val,x[1])});
        }
    }
    
    public void pop() {
        stack.pop();
    }
    
    public int top() {
        int[] x=stack.peek();
        return x[0];
    }
    
    public int getMin() {
        int[] x=stack.peek();
        return x[1];
    }
}

这篇关于力扣 155. 最小栈的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!