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

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

作者: 灰化肥发黑会挥发 | 来源:发表于2019-01-02 21:28 被阅读0次

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

解题思路:难点在于获取min,需要一个辅助栈,该栈中存储当前栈最小的元素。

import java.util.ArrayList;
import java.util.List;

public class stackSolution {
    List<Integer> list = new ArrayList();
    List<Integer> listMin = new ArrayList();
    public void push(int number){
        if(list.isEmpty()) return;
        list.add(number);
        if(list.isEmpty())  listMin.add(number);
        else if(number<listMin.get(listMin.size()-1)) listMin.add(number);
        else listMin.add(listMin.get(listMin.size()-1));
    }

    public  int pop(){
        if(list.isEmpty()) return -1;
        int top = list.get(list.size()-1);
        list.remove(list.size()-1);
        listMin.remove(listMin.size()-1);
        return top;
    }

    public int getmin(){
        return listMin.get(listMin.size()-1);
    }
}

相关文章

  • 剑指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/harelqtx.html