题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
import java.util.Stack;
public class Solution {
Stack<Integer> dataStack=new Stack<>();
//辅助栈获取最小值的
Stack<Integer> assistantStack=new Stack<>();
public void push(int node) {
dataStack.push(node);
//辅助栈为空或者新加入的数小于辅助栈中最小的数,就加入该数
if(assistantStack.size()==0 ||node<assistantStack.peek()){
assistantStack.push(node);
}else{
assistantStack.push(assistantStack.peek());
}
}
public void pop() {
if(dataStack.size()>0 ||assistantStack.size()>0){
dataStack.pop();
assistantStack.pop();
}
}
public int top() {
if(assistantStack.size()>0){
return assistantStack.peek();
}
return -1;
}
public int min() {
if(assistantStack.size()>0){
return top();
}
return -1;
}
}