12

来源:互联网 发布:淘宝如何投诉人工客服 编辑:程序博客网 时间:2024/04/28 06:43

2017.9.14

用两个栈就好了。

一个栈就是普普通通存储数据的栈。

一个栈里存放,push(number)之后,此时的最小值。

public class MinStack {    /*    * @param a: An integer    */public LinkedList<Integer> stack;public LinkedList<Integer> mins;public MinStack() {    stack = new LinkedList<Integer>();    mins = new LinkedList<Integer>();// do intialization if necessary}    /*     * @param number: An integer     * @return: nothing     */    public void push(int number) {        // write your code here    stack.push(number);    if(mins.isEmpty()){    mins.push(number);    }    else if(number <mins.peek()){    mins.push(number);    }    else{    mins.push(mins.peek());    }    }    /*     * @param a: An integer     * @return: An integer     */    public int pop() {        // write your code here    if(stack.isEmpty()){    return -1;    }    else{    mins.pop();    return stack.pop();    }    }    /*     * @param a: An integer     * @return: An integer     */    public int min() {        // write your code here    if(stack.isEmpty()){    return -1;    }    else{    return mins.peek();    }    }}


原创粉丝点击