O(1)的最小栈

使用两个栈实现

data栈

min栈 

//忽略判空判满
public class MinStck{
private Stack<Integer> data=new Stack<>();
private Stack<Integer> min=new Stack<>();
public void push(int s){
data.push(s);
if(min.isEmpty()){
min.push(s);
}else if(s<min.getMin()){
  min.push(s);
}else{
min.push(min.peek());
}
}

public int pop(){
min.pop();return data.pop();
}
public int getMin(){
return min.peek();
}


}

猜你喜欢

转载自www.cnblogs.com/bowenqianngzhibushiwo/p/11620786.html
今日推荐