LeetCode—剑指Offer:队列的最大值(辅助队列)

队列的最大值(中等)

2020年9月12日

题目来源:力扣

在这里插入图片描述

解题
辅助队列

class MaxQueue {
    
    
     Queue<Integer> queue;
    LinkedList<Integer> max;
    public MaxQueue() {
    
    
        queue = new LinkedList<>();
        max = new LinkedList<>();
    }
    
    public int max_value() {
    
    
        return max.size()==0?-1:max.getFirst();
    }
    
    public void push_back(int value) {
    
    
        queue.add(value);
        while(max.size()!=0&&max.getLast()<value){
    
    
            max.removeLast();
        }
        max.add(value);
    }
    
    public int pop_front() {
    
    
        if(max.size()!=0&&queue.peek().equals(max.getFirst()))
            max.removeFirst();
        return queue.size()==0?-1:queue.poll();
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41541562/article/details/108546555