Max queue
1class Solution:
2 def __init__(self):
3 self.queue = []
4 self.max = []
5
6 def enqueue(self, x):
7 self.queue.append(x)
8 while self.max and self.max[-1] < x: self.max.pop()
9 self.max.append(x)
10
11 def dequeue(self):
12 res = self.queue.pop(0)
13 if res == self.max[0]: self.max.pop(0)
14 return res
15
16 def max(self):
17 return self.max[0]