每日一题641. 设计循环双端队列

Posted 爱写Bug的王六六

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题641. 设计循环双端队列相关的知识,希望对你有一定的参考价值。

641. 设计循环双端队列

数据结构模拟题

一个基本的实现,需要满足除构造函数以外复杂度为 O(k) 以外,其余操作均为 O(1)。

常规实现包含两种方式:数组实现 与 链表实现。

其中数组实现可以利用调用次数较小,开成调用次数 3 倍大小,然后从中间开始往两边存储,这样做就不用考虑下标边的界问题;而更为常规的解法是构造一个与限定空间 k 等大的数组,使用两下标并配合坐标转换来做,对于下标自增操作而言,只需要进行「加一取模」即可,而对于下标自减操作,由于考虑负值问题,需要进行「增加限定空间偏移后,进行减一再取模」。

链表实现则无须考虑额外的下标转换问题,但需要额外定义类。

使用 cnt 记录当前队列元素大小,使用 k 记录初始化时指定的空间大小。

  • 数组
class MyCircularDeque 
   
    int

以上是关于每日一题641. 设计循环双端队列的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 641. 设计循环双端队列 / 1656. 设计有序流 / 302. 层数最深叶子节点的和

LeetCode 863. 二叉树中所有距离为 K 的结点/ 641. 设计循环双端队列 / 622. 设计循环队列

641. 设计循环双端队列

641. 设计循环双端队列

LeetCode 641 设计循环双端队列[双指针] HERODING的LeetCode之路

LeetCode刷题日记之设计循环双端队列