关闭

MinStack

77人阅读 评论(0) 收藏 举报
分类:

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

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:62746次
    • 积分:8102
    • 等级:
    • 排名:第2485名
    • 原创:795篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类