牛牛正在设计一个双端队列的实现。双端队列是一种线性数据结构,它允许从队列的两端插入和删除元素。 你的实现应该支持以下操作: MyDeque(int k):构造函数,设置队列的最大长度为 k。 bool insertFront(int value):将元素插入双端队列的前端。如果插入成功,则返回0,否则返回-1。操作编号为1. bool insertLast(int value):将元素插入双端队列的后端。如果插入成功,则返回0,否则返回-1。操作编号为2. bool deleteFront():从双端队列的前端删除一个元素。如果删除成功,则返回0,否则返回-1。操作编号为3. bool deleteLast():从双端队列的后端删除一个元素。如果删除成功,则返回0,否则返回-1。操作编号为4. int getFront():获取双端队列的前端元素。如果双端队列为空,则返回 -1。操作编号为5. int getRear():获取双端队列的后端元素。如果双端队列为空,则返回 -1。操作编号为6. bool isEmpty():检查双端队列是否为空。 bool isFull():检查双端队列是否已满。 函数签名: vectorint performOperations(vectorint& operations, int k); 函数参数: operations:一个二维整数数组,表示要执行的操作。每个操作由一个整数和可能的参数组成,操作类型和参数的含义如上所述。 k:表示队列最大长度。 返回值: 返回一个整数数组,表示每个操作的输出结果。
示例1
输入
[[1,1],[2,2],[1,3],[2,4],[5],[6],[3],[4],[5]],4
示例2
输入
[[1,1],[1,2],[1,3],[2,4],[2,5],[2,6],[5],[6],[4],[6],[1,8],[5]],5
输出
[0,0,0,0,0,-1,3,5,0,4,0,8]
备注:
所有的值都在 1 至 1000 的范围内。操作数将在 1 至 1000 的范围内。请不要使用内置的队列库。
加载中...