題目:定義棧的數據結構,使新的棧可以用O(1)的時間複雜度獲取最小值
思路:使用第二個棧來存儲最小值
function Stack(){
let arr = [];
let minArr = [];
this.getMin = ()=>{
return minArr[minArr.length-1];
}
this.pop = ()=>{
if(arr.length == 0){
return -1;
}
let tem = arr.pop();
if(tem == minArr[minArr.length-1]){
minArr.pop();
}
return tem;
}
this.push = item=>{
if(typeof item !== 'number'){
return -1;
}
arr.push(item);
if(minArr.length == 0 || item <= minArr[minArr.length-1]){
minArr.push(item);
}
}
}
let arr = new Stack();
arr.push(3);
arr.push(2);
arr.push(5);
arr.getMin();