剑指offer之十七---包含min函数的栈

转载 2017年10月06日 21:57:24

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
链接:https://www.nowcoder.com/questionTerminal/4c776177d2c04c2494f2555c9fcc1e49
来源:牛客网

思路:用一个栈data保存数据,用另外一个栈min保存依次入栈最小的数
比如,data中依次入栈,543, 8, 10, 11, 12, 1
   则min依次入栈,543,no,no, no, no, 1
 
no代表此次不如栈
每次入栈的时候,如果入栈的元素比min中的栈顶元素小或等于则入栈,否则不如栈。

换句话说:应用一个辅助栈,压的时候,如果A栈的压入比B栈压入大,B栈不压,,,,小于等于,AB栈同时压入,出栈,如果,AB栈顶元素不等,A出,B不出。

链接:https://www.nowcoder.com/questionTerminal/4c776177d2c04c2494f2555c9fcc1e49
来源:牛客网

 Stack<Integer> data = new Stack<Integer>();
    Stack<Integer> min = new Stack<Integer>();
    Integer temp = null;
    public void push(int node) {
        if(temp != null){
            if(node <= temp ){
                temp = node;
                min.push(node);
            }
            data.push(node);
        }else{
            temp = node;
            data.push(node);
            min.push(node);
        }
    }
     
    public void pop() {
        int num = data.pop();
        int num2 = min.pop();
        if(num != num2){
           min.push(num2);
        }
    }
     
    public int top() {
        return data.peek();
    }
     
    public int min() {
        return min.peek();
    }
}


相关文章推荐

剑指Offer之面试题21:包含min函数的栈

所有代码均通过G++编译器测试,仅为练手纪录。 //面试题21:包含min函数的栈 //题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。 //     ...

剑指Offer:面试题21 包含min函数的栈

/* 包含min函数的栈: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的 时间复杂度都是O(1) 分析: 如果直接...

剑指offer-面试题21.包含min函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。 在该栈中,调用min,push及pop的时间复杂度都是O(1).   这一题实际上需要一个辅助栈存储最...

剑指Offer 21:包含min函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到站的最小元素的min函数。在该栈中,调用min、push以及pop的时间复杂度都是O(1)。 题目分析我们要实现的两种效果是: 数据结构仍然是栈的...

剑指offer_面试题21_包含min函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小最小元素的min函数。在该栈中,调用min、push 及 pop的时间复杂度都是O(1)。 本题关键问题在于:O(1)时间复杂度的 min...

剑指offer 面试题21 包含 min 函数的栈

剑指offer 面试题21 包含 min 函数的栈 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数, 在该栈中,调用 min、push 及 po...

剑指offer-面试题21-包含min函数的栈

package case21_MyStackWithMin; import java.util.Stack; /** * 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min...

【剑指Offer面试题】 九度OJ1522:包含min函数的栈

题目链接地址: http://ac.jobdu.com/problem.php?pid=1522题目1522:包含min函数的栈时间限制:1 秒内存限制:128 兆特殊判题:否提交:1861解决:...

《剑指offer》——包含min函数的栈

T: 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 刚开始看到这个题目的时候,有点儿蒙,不理解怎么去创建一个栈的数据结构?java中不都有标准的Sta...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)