Open chunbin1 opened 2 years ago
思路:使用另一个栈栈顶保持最小值
class MinStack{
constructor(){
this.stack = []
this.minStack = []
}
push(val){
this.stack.push(val)
this._pushMinStash(val)
}
_pushMinStash(val){
const length = this.minStack.length
if(length>0){
if(this.minStack[length-1]>=val){
this.minStack.push(val)
}
}else{
this.minStack.push(val)
}
}
getMin(){
return this.minStack[this.minStack.length-1]
}
top(){
return this.stack[this.stack.length-1]
}
pop(){
const val = this.stack.pop()
this._popMinStash(val)
}
_popMinStash(val){
if(this.minStack[this.minStack.length-1]===val){
this.minStack.pop()
}
}
}
题目链接