题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的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();
    }

}

 

相关文章:

  • 2021-07-30
  • 2021-09-11
  • 2022-12-23
  • 2021-12-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
猜你喜欢
  • 2021-08-23
  • 2021-12-19
  • 2022-01-29
  • 2022-12-23
  • 2021-10-17
  • 2022-12-23
相关资源
相似解决方案