java基础编程——获取栈中的最小元素

Posted MichaelKai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础编程——获取栈中的最小元素相关的知识,希望对你有一定的参考价值。

题目描述

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

题目代码

/**
 * Created by YuKai Fan on 2018/9/5.
 */
public class MinStack{
    Stack<Integer> dataStack = new Stack<>();
    Stack<Integer> minStack = new Stack<>();
    public static void main(String[] args) {
        MinStack  minstack = new MinStack();
        minstack.push(5);
        minstack.push(7);
        minstack.push(3);
        minstack.push(4);
        /*System.out.println(minstack.pop());
        System.out.println(minstack.pop());*/
        System.out.println("min="+minstack.min());
    }
    public void push(int num) {
        dataStack.push(num);
        if (minStack.isEmpty() || num < minStack.peek()) {
            minStack.push(num);
        } else {
            minStack.push(minStack.peek());
        }
    }
    public void pop() {
        dataStack.pop();
        minStack.pop();
    }
    public int top() {
        return dataStack.peek();
    }
    public int min() {
        return minStack.peek();
    }

}

 

以上是关于java基础编程——获取栈中的最小元素的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 155. 最小栈(栈 Stack,Java)

左神算法之获取栈中最小值

O时间复杂度实现入栈出栈获得栈中最小元素获得栈中最大元素(转)

155.最小栈

LeetCode155——最小栈

实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作