Loading

剑指offer[20]——包含min函数的栈

题目描述

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

注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。

这道题目我的做法很简单,pushpop都是调用的原生方法,主要需要自己写的函数是min,我的写法也很简单,就是遍历一次数组,记录下遍历过程中比当前纪录的最小值还要小的数,最后返回即可。

let arr = [];
function push(node)
{
    return arr.push(node);
}
function pop()
{
    return arr.pop();
}
function top()
{
    return arr[arr.length-1];
}
function min()
{
    let _min = 0;
    let first = true;
    for(let item of arr){
        if(first){first=false;_min=item;}
        else if(item<_min){
            _min = item;
        }
    }
    return _min;
}
posted @ 2020-03-13 11:27  Jacob是我了  阅读(118)  评论(0编辑  收藏  举报