MinStack

来源:互联网 发布:竞彩缩水软件 编辑:程序博客网 时间:2024/06/05 11:45

首先对于这种数据结构实现问题,我们都是先看了答案了。然后明白了思路后,就开始自己实现。于是当中犯了两个错误,尤其是第二个错误,甚是可怕。

Stack存的是Object类型,在进行值的比较时,怎么可以是用“==”来比较,//2这个错误怎么这么蠢

更新:06/05/2016, 在leetcode上又做了一遍,发现第一个错误更可怕,而且又犯了, 同时必须要考虑stack为空的情况,下面的code必须得修改,添加如下类似,检查empty();

if(miniStack.empty()) {            return 0;        }

public class MinStack {        Stack<Integer> stack;    Stack<Integer> minStack;        public MinStack() {        // do initialize if necessary        stack = new Stack<>();        minStack = new Stack<>();    }    public void push(int number) {        // write your code here        stack.push(number);        if (minStack.isEmpty()) {            minStack.push(number);        //1 } else if (number < minStack.peek()) {        } else if (number <= minStack.peek()) {            minStack.push(number);        }    }    public int pop() {        // write your code here        //2 if (minStack.peek() == stack.peek()) {        if (minStack.peek().equals(stack.peek())) {            minStack.pop();        }        return stack.pop();    }    public int min() {        // write your code here        return minStack.peek();    }}


0 0
原创粉丝点击