包含min函数的栈

2019-11-11  本文已影响0人  ElricTang

《剑指offer》刷题笔记。如有更好解法,欢迎留言。

关键字: 辅助栈

题目描述:

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

思路:

let stack = [];
let minStack = [];
function push(node)
{
    stack.push(node);
    if(minStack.length === 0){
        minStack.push(node);
    }else{
        if(node < minStack[minStack.length-1]){
            minStack.push(node);
        }
    }
}
function pop()
{
    let min = minStack[minStack.length-1];
    let cur = stack[stack.length-1];
    if(cur === min){
        minStack.pop();
        stack.pop();
    }else{
        stack.pop();
    }
}
function min()
{
     return minStack[minStack.length-1];
}
上一篇 下一篇

猜你喜欢

热点阅读