void pushWindow(ArrayDeque<Integer> deque, int[] values, int index) {
while (!deque.isEmpty() && values[deque.peekLast()] <= values[index]) deque.removeLast();
deque.addLast(index);
}
void expireWindow(ArrayDeque<Integer> deque, int left) {
while (!deque.isEmpty() && deque.peekFirst() < left) deque.removeFirst();
}
def push_window(deque, values: list[int], index: int) -> None:
while deque and values[deque[-1]] <= values[index]:
deque.pop()
deque.append(index)
def expire_window(deque, left: int) -> None:
while deque and deque[0] < left:
deque.popleft()
def pushWindow(deque: scala.collection.mutable.ArrayDeque[Int], values: Array[Int], index: Int): Unit =
while deque.nonEmpty && values(deque.last) <= values(index) do deque.removeLast()
deque.append(index)
def expireWindow(deque: scala.collection.mutable.ArrayDeque[Int], left: Int): Unit =
while deque.nonEmpty && deque.head < left do deque.removeHead()
void pushWindow(std::deque<int>& deque, const std::vector<int>& values, int index) {
while (!deque.empty() && values[deque.back()] <= values[index]) deque.pop_back();
deque.push_back(index);
}
void expireWindow(std::deque<int>& deque, int left) {
while (!deque.empty() && deque.front() < left) deque.pop_front();
}