当前位置:网站首页>LeetCode 622 设计循环队列[数组 队列] HERODING的LeetCode之路
LeetCode 622 设计循环队列[数组 队列] HERODING的LeetCode之路
2022-08-02 19:37:00 【HERODING23】
解题思路
解决本题的关键在于定义好数据结构类型,首先定义一个长度为k的数组,再定义几个变量,当前要插入节点的下标index,当前队列长度len,以及最大队列容量n,入队列首先判断是否满,不满就往index位置插入即可,出队列直接len–,不需要对删除的数进行操作,获取队首元素就需要从index位置往前数len的长度,注意是循环数组,所以有取余操作,队尾就是index的前一个位置的数,也需要注意取余操作,最后就是判断空和满的函数,直接根据len是否为0或者n进行返回,代码如下:
代码
class MyCircularQueue {
private:
vector<int> q;
int len;
int n;
int index;
public:
MyCircularQueue(int k) {
q = vector<int>(k, 0);
len = 0;
index = 0;
n = k;
}
bool enQueue(int value) {
if(len < n) {
q[index] = value;
index ++;
index %= n;
len ++;
return true;
}
return false;
}
bool deQueue() {
if(len == 0) {
return false;
}
len --;
return true;
}
int Front() {
if(len == 0) {
return -1;
}
return q[(index + n - len) % n];
}
int Rear() {
if(len == 0) {
return -1;
}
return q[(index + n - 1) % n];
}
bool isEmpty() {
return len == 0;
}
bool isFull() {
return len == n;
}
};
/** * Your MyCircularQueue object will be instantiated and called as such: * MyCircularQueue* obj = new MyCircularQueue(k); * bool param_1 = obj->enQueue(value); * bool param_2 = obj->deQueue(); * int param_3 = obj->Front(); * int param_4 = obj->Rear(); * bool param_5 = obj->isEmpty(); * bool param_6 = obj->isFull(); */
边栏推荐
- Geoserver + mysql + openlayers problem
- Geoserver+mysql+openlayers
- Therapy | How to Identify and Deal with Negative Thoughts
- 分享一个 web 应用版本监测 (更新) 的工具库
- Meta 与苹果的元宇宙碰撞
- 「面试必会」这应该是最有深度的TCP三次握手、四次挥手细节讲解
- 六石管理学:入门机会只有一次,先把产品做好
- spack install报错/tmp/ccBDQNaB.s: Assembler message:
- golang刷leetcode 经典(10) tire树与ac自动机
- Parse the commonly used methods in the List interface that are overridden by subclasses
猜你喜欢
栈、队列和数组
idea 配置resin
线性表(顺序表和链表)
LeetCode:622. 设计循环队列【模拟循环队列】
【LeetCode】118. 杨辉三角 - Go 语言题解
MySQL安装时一直卡在starting server
4 kmiles join YiSheng group, with more strong ability of digital business, accelerate China's cross-border electricity full domain full growth
扫码预约 | 观看Apache Linkis数据处理实践以及计算治理能力
Redis集群配置
SQL Server实现group_concat功能
随机推荐
ssh configuration
Parse the commonly used methods in the List interface that are overridden by subclasses
Shell: conditional statements
姑姑:给小学生出点口算题
MaxCompute 近期发布上线的版本的 SQL 引擎新功能参数化视图有什么优势?
线性表(顺序表和链表)
第一次进入前20名
软考 ----- UML设计与分析(下)
脑机接口003 | 马斯克称已实现与云端的虚拟自己对话,相关概念股份大涨
Redis cluster configuration
实战:10 种实现延迟任务的方法,附代码!
Meta 与苹果的元宇宙碰撞
shell:条件语句
Kali命令ifconfig报错command not found
Mysql安装流程 【压缩版】
7月29-31 | APACHECON ASIA 2022
元宇宙001 | 情绪无法自控?元宇宙助你一臂之力
Electron User Guide Beginning Experience
【LeetCode】1161. 最大层内元素和
golang刷leetcode 数学(1) 丑数系列