O (1) minimum stack

Two stack implementation

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();
}


}

 

Guess you like

Origin www.cnblogs.com/bowenqianngzhibushiwo/p/11620786.html