【剑指offer】13.包含min函数的栈

发布时间:2019-06-16 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【剑指offer】13.包含min函数的栈脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

题目

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

思路

1.定义两个栈,一个栈用于存储数据,另一个栈用于存储每次数据进栈时栈的最小值.

2.每次数据进栈时,将此数据和最小值栈的栈顶元素比较,将二者比较的较小值再次存入最小值栈.

4.数据栈出栈,最小值栈也出栈。

3.这样最小值栈的栈顶永远是当前栈的最小值。

代码

var dataStack = [];
var minStack = [];
 
function push(node)
{
    dataStack.push(node);
    if(minStack.length === 0 ||  node < min()){
        minStack.push(node);
    }else{
        minStack.push(min());
    }
}
function pop()
{
    minStack.pop();
    return dataStack.pop();
}
function top()
{
    var length = dataStack.length;
    return length>0&&dataStack[length-1]
}
function min()
{
    var length = minStack.length;
    return length>0&&minStack[length-1]
}

脚本宝典总结

以上是脚本宝典为你收集整理的【剑指offer】13.包含min函数的栈全部内容,希望文章能够帮你解决【剑指offer】13.包含min函数的栈所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。