题解 | #包含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
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务