力扣 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];
    }
}

上一篇:2021-09-10


下一篇:m3u8转换为mp4格式