parent
4b762c3060
commit
38f972b2bf
@ -0,0 +1,34 @@
|
||||
package 栈相关.q232_用栈实现队列.含有最大值的队列;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
||||
|
||||
public class MaxQueue {
|
||||
|
||||
private Queue<Integer> queue;
|
||||
private 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();
|
||||
}
|
||||
}
|
Loading…
Reference in new issue