美文网首页
面试题30:包含min函数的栈

面试题30:包含min函数的栈

作者: scott_alpha | 来源:发表于2019-10-07 17:11 被阅读0次

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push和pop的时间复杂度都是O(1)。
思路:用data栈装数据,用min辅助栈存每次压入时候的最小数据。
解决方案:

public class Question30 {
    Stack<Integer> data = new Stack<Integer>();
    Stack<Integer> min = new Stack<Integer>();
    public void pop(int value){
        data.push(value);
        if (min.empty() || value < min.pop()){
            min.push(value);
        }else {
            min.push(min.peek());
        }
    }
    public void pop(){
        if (!data.empty()){
            data.pop();
            min.pop();
        }
    }
    public int min(){
        return min.peek();
    }
}

相关文章

  • 剑指offer第六天

    面试题21 包含min函数的栈 实现一个能够得到栈的最小元素的min函数,在该栈中调用min,push,pop的时...

  • 剑指offer第二版-30.包含min函数的栈

    本系列导航:剑指offer(第二版)java实现导航帖 面试题30:包含min函数的栈 题目要求:定义栈的数据结构...

  • 剑指offer学习笔记:4.3 举例让抽象问题具体化

    面试题21:包含min函数的栈定义一个数据结构,请在该类型中实现一个能够得到栈中最小元素的min函数。在该栈中,调...

  • 30、包含min函数的栈

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

  • 面试题30:包含min函数的栈

    题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 解题思路: 引入一个辅助栈,用...

  • 面试题30:包含min函数的栈

    实现栈的数据结构,包含min方法可以以O(1)的时间复杂度获得栈中的最小值 每入栈一次,就与辅助栈顶比较大小,如果...

  • 面试题30:包含min函数的栈

    题目 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及po...

  • 面试题30:包含min函数的栈

    题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push和po...

  • 面试题30:包含min函数的栈

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

  • 面试题30:包含min函数的栈

    题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push及po...

网友评论

      本文标题:面试题30:包含min函数的栈

      本文链接:https://www.haomeiwen.com/subject/jjpmpctx.html