题解 | #包含min函数的栈#
包含min函数的栈
https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49
/** 1. 维护两个栈,originStack 负责存放真实数据,minStack负责存放最小值 2. minStack总会拿最顶上元素与即将push的元素比较最小值,哪个小哪个push 3. 直接从minStack获取,时间复杂度O1 */ let originStack = [] let minStack = [] function push(node) { originStack.push(node) if(minStack.length){ const minTop = minStack[minStack.length - 1] minStack.push(minTop > node ? node : minTop) }else{ minStack.push(node) } } function pop() { minStack.pop() return originStack.pop() } function top() { return originStack[originStack.length - 1] } function min() { return minStack[minStack.length - 1] } module.exports = { push : push, pop : pop, top : top, min : min };