题目:定义栈的数据结构,在该类型中实现一个能够得到的栈的最小元素的min函数.在该栈中,调用min,push,pop都是O(1)的复杂度
import java.util.Stack;
public class StackWithMin {
private Stack
dataStack;
private Stack
minStack;
public StackWithMin() {
dataStack = new Stack
();
minStack = new Stack
();
}
public void push(Integer data){
dataStack.push(data);
if(minStack.isEmpty() || data<=minStack.peek())
minStack.push(data);
else
minStack.push(minStack.peek());
}
public Integer min(){
return minStack.peek();
}
public Integer pop(){
minStack.pop();
return dataStack.pop();
}
}