From 38f972b2bf4decc5fb68433948fa485d6eb6bd21 Mon Sep 17 00:00:00 2001 From: yuanguangxin <274841922@qq.com> Date: Fri, 3 Jul 2020 18:30:06 +0800 Subject: [PATCH] update --- .../含有最大值的队列/MaxQueue.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/栈相关/q232_用栈实现队列/含有最大值的队列/MaxQueue.java diff --git a/src/栈相关/q232_用栈实现队列/含有最大值的队列/MaxQueue.java b/src/栈相关/q232_用栈实现队列/含有最大值的队列/MaxQueue.java new file mode 100644 index 0000000..32562be --- /dev/null +++ b/src/栈相关/q232_用栈实现队列/含有最大值的队列/MaxQueue.java @@ -0,0 +1,34 @@ +package 栈相关.q232_用栈实现队列.含有最大值的队列; + +import java.util.LinkedList; +import java.util.Queue; + +public class MaxQueue { + + private Queue queue; + private LinkedList 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(); + } +}