实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。
你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。
import java.util.LinkedList; public class MinStack { public LinkedList dataStack; public LinkedList minStack; public MinStack() { // do intialization if necessary dataStack = new LinkedList<>(); minStack = new LinkedList(); } /* * @param number: An integer * @return: nothing */ public void push(int number) { // write your code here if (minStack.isEmpty() || number <= (int) minStack.getFirst()) { minStack.addFirst(number); } dataStack.addFirst(number); } /* * @return: An integer */ public int pop() { // write your code here int top = (int) dataStack.removeFirst(); if (top == (int) minStack.getFirst()) { minStack.removeFirst(); } return top; } /* * @return: An integer */ public int min() { // write your code here return (int) minStack.getFirst(); } }