Leetcode 155. Min Stack

来源:互联网 发布:java web 前后端分离 编辑:程序博客网 时间:2024/06/05 06:35

Using two stacks, one to save elements, and the other to save the minimum. Therefore, there is a mapping between an element and current minimum. 

        stack                   min

         -1                         -1   

          4                          1

          3                          1

          2                          1

          1                          1

for sequence 1 2 3 4 -1.

public class MinStack {    Stack<Integer> s;    Stack<Integer> min;    /** initialize your data structure here. */    public MinStack() {        s = new Stack<>();        min = new Stack<>();    }        public void push(int x) {        s.push(x);        if (min.isEmpty()) {            min.push(x);        } else {            min.push(Math.min(x, min.peek()));        }    }        public void pop() {        if (!s.isEmpty() && !min.isEmpty()) {            s.pop();            min.pop();        }    }        public int top() {        return s.peek();    }        public int getMin() {        return min.peek();    }}


0 0