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

全部评论

相关推荐

06-12 17:07
沈阳大学 Java
AAA射频张总:冬天也发扬下,我怕冷
点赞 评论 收藏
分享
05-03 12:45
西南大学 Java
nsnzkv:你这项目写的内容太多了,说实话都是在给自己挖坑,就算简历过了,后面面试也难受
点赞 评论 收藏
分享
04-28 22:33
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务