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

全部评论

相关推荐

Aki-Tomoya:窝趣,人家这是先富带动后富,共同富裕了属于是
投递英伟达等公司9个岗位
点赞 评论 收藏
分享
2024-12-30 22:31
吉首大学 Web前端
工字钢写代码:改成吉林就OK了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务