12. Min Stack Description Implement a stack with min() function, which will return the smallest number in the stack. It should support push, pop and min operation all in O(1) cost. Example push(1) pop() // return 1 push(2) push(3) min() // return 2 push(1) min() // return 1 Solution import java.util.*; public class MinStack { Stack<Integer> stack1 = new Stack<>(); Stack<Integer> stack2 = new Stack<>(); public MinStack() { // do intialization if necessary } /* * @param number: An integer * @return: nothing */ public void push(int number) { // write your code here stack1.push(number); if(stack2.isEmpty()||stack2.peek()>=number) stack2.push(number); } /* * @return: An integer */ public int pop() { // write your code here int a = stack1.pop(); if(stack2.peek()==a) stack2.pop(); return a; } /* * @return: An integer */ public int min() { // write your code here return stack2.peek(); } }