







from collections import deque
class MaxQueue:
def __init__(self):
self.res = deque()
self.tmp = deque()
def max_value(self) -> int:
return self.tmp[0] if self.tmp else -1
def push_back(self, value: int) -> None:
self.res.append(value)
while self.tmp and value > self.tmp[-1]:
self.tmp.pop()
self.tmp.append(value)
def pop_front(self) -> int:
if not self.res:
return -1
if self.res[0] == self.tmp[0]:
self.tmp.popleft()
return self.res.popleft()

本文介绍了一种使用双端队列实现的最大值队列数据结构。该数据结构支持在队尾添加元素(push_back)、从队首移除元素(pop_front)及获取当前最大值(max_value)的操作。通过维护两个双端队列res和tmp,确保了操作的高效执行。
546

被折叠的 条评论
为什么被折叠?



