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;
}
}