题目描述
请定义一个队列并实现函数max_value
得到队列里的最大值,要求函数max_value
、push_back
和pop_front
的均摊时间复杂度都是O(1)
。
若队列为空,pop_front
和max_value
需要返回-1
。
示例1:
1 | 输入: |
示例2:
1 | 输入: |
限制:
1 <= push_back,pop_front,max_value的总操作数 <= 10000
1 <= value <= 10^5
思路
需要维护一个最大值递减的队列来记录队列的最大值,队列需要是双端队列,可以实现从队首将最大值出队,在队尾插入最大值。
代码
1 | class MaxQueue { |
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/dui-lie-de-zui-da-zhi-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。