剑指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函数的栈

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

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

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

剑指Offer-->包含min函数的栈

首先我们可以想到一种很简单的方法:将元素压入栈中,当第二个元素压栈的时候,与第一个元素进行比较,然后使较大的元素出栈,压栈结束后,栈中存留的便是最小的元素。但是,如果我们要想得到下一个最小的元素呢? ...

剑指offer:包含min函数的栈(java)

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push及pop的时间复杂度都是O(1).     看到这个问题,我们的第一反应可能是每次压入一个...

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

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

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

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

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

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

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

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

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

/* 包含min函数的栈: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的 时间复杂度都是O(1) 分析: 如果直接...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:剑指offer之十七---包含min函数的栈
举报原因:
原因补充:

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