--- title: 155. Min Stack tags: Stack description: share source code. --- # 155. Min Stack ```java // used Pair always keep track of min value class MinStack { static class Pair{ int val; int min; public Pair(int val, int min){ this.val = val; this.min = min; } } Stack<Pair> sk; public MinStack() { sk = new Stack<>(); } public void push(int val) { if(sk.isEmpty()){ sk.push(new Pair(val, val)); }else{ sk.push(new Pair(val, Math.min(val, sk.peek().min))); } } public void pop() { sk.pop(); } public int top() { return sk.peek().val; } public int getMin() { return sk.peek().min; } } ```