设计一个普通的栈,还有一个存储着最小值的栈。
每次push和pop时拿当前元素和栈顶比较,相应出栈进栈即可。
/**
* return a array which include all ans for op3
* @param op int整型二维数组 operator
* @return int整型一维数组
*/
function getMinStack( op ) {
let stack = [];
let minStack = [];
let res = [];
for (let opr of op) {
const [opt, val] = opr;
switch (opt) {
case 1:
stack.push(val);
if (val <= minStack[minStack.length - 1] || minStack.length <= 0) minStack.push(val);
break;
case 2:
let popVal = stack.pop();
if (popVal === minStack[minStack.length - 1]) minStack.pop();
break;
case 3:
let minVal = minStack[minStack.length - 1];
res.push(minVal)
break;
}
}
return res;
}
module.exports = {
getMinStack : getMinStack
}; 
京公网安备 11010502036488号