剑指 Offer 59 - II. 队列的最大值

class MaxQueue {
    public Queue queue = new LinkedList();
    public Deque maxQueue = new LinkedList();
    public MaxQueue() {
    }
    public int max_value() {
        if(queue.size() == 0) return -1;
        else return maxQueue.getFirst();
    }
    public void push_back(int value) {
        queue.add(value);
        //maxQueue.size()!=0 当这个值比所有的都大 队列就空了 会报错 getLast()
        while( maxQueue.size()!=0 && value > maxQueue.getLast()) maxQueue.removeLast();
        maxQueue.addLast(value);
    }
    public int pop_front() {
        if(queue.size() == 0) return -1;
        int value = queue.poll();
        if(value == maxQueue.peek()) maxQueue.removeFirst();
        return value;
    }
}
全部评论

相关推荐

09-17 10:53
四川大学 C++
牛客91242815...:会写标书没有任何卵用,鉴定为横向垃圾导师的受害者
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务