class MinStack {
public Stack<Integer>st1=new Stack<>();
public Stack<Integer>st2=new Stack<>();
public MinStack() {
}
public void push(int val) {
if(st2.empty()){
st2.push(val);
}else if(st2.peek()>=val){
st2.push(val);
}
st1.push(val);
}
public void pop() {
// 涉及到非primitive的比较,都用Objects.equals(),否则不对
if(Objects.equals(st1.peek(),st2.peek())){
st2.pop();
}
st1.pop();
}
public int top() {
return st1.peek();
}
public int getMin() {
return st2.peek();
}
}
/**
* Your MinStack object will be instantiated and called as such:
* MinStack obj = new MinStack();
* obj.push(val);
* obj.pop();
* int param_3 = obj.top();
* int param_4 = obj.getMin();
*/
155. Min Stack
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。