Leetcode—622. 设计循环队列【中等】

2024每日刷题(128)

Leetcode---622. 设计循环队列

实现代码

cpp 复制代码
class MyCircularQueue {
public:
    MyCircularQueue(int k): q(k) {
        qSize = k;
    }
    
    bool enQueue(int value) {
        if(isFull()) {
            return false;
        }
        q[rear] = value;
        rear = (rear + 1) % qSize;
        deflag = false;
        enflag = true;
        return true;
    }
    
    bool deQueue() {
        if(isEmpty()) {
            return false;
        }
        front = (front + 1) % qSize;
        deflag = true;
        enflag = false;
        return true;
    }
    
    int Front() {
        if(isEmpty()) {
            return -1;
        }
        return q[front];
    }
    
    int Rear() {
        if(isEmpty()) {
            return -1;
        }
        return q[(rear - 1 + qSize) % qSize];
    }
    
    bool isEmpty() {
        if(deflag && front == rear) {
            return true;
        }
        if(enflag == false && rear == 0 && deflag == false) {
            return true;
        }
        return false;
    }
    
    bool isFull() {
        if(enflag && front == rear) {
            return true;
        }
        return false;
    }

private:
    vector<int> q;
    int qSize = -1;
    int front = 0;
    int rear = 0;
    int enflag = false;
    int deflag = false;
};

/**
 * 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();
 */

运行结果

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
wabs6662 分钟前
关于动态规划【力扣1143.最长公共子序列的思考】
算法·leetcode·动态规划
剑挑星河月23 分钟前
54.螺旋矩阵
java·算法·leetcode·矩阵
Robot_Nav1 小时前
MPPI 局部规划器实验设计讲解
人工智能·算法·mppi
mingo_敏1 小时前
Mean-Teacher 均值教师自训练框架详解
算法·均值算法
huizhan0071 小时前
中国核能神州行走进三澳 共筑产业链核安全防线
经验分享
会周易的程序员2 小时前
microLog 后端开发指南
开发语言·c++·物联网·设计模式·日志·iot·aiot
星空露珠2 小时前
迷你世界UGc3.0脚本Wiki[剧情动画模块管理接口 Timeline]
开发语言·数据结构·算法·游戏·lua
笨笨没好名字2 小时前
Leetcode刷题python3版第一周(下)
linux·算法·leetcode
汉克老师2 小时前
GESP2026年6月认证C++二级( 第三部分编程题(2、菱形))精讲
c++·找规律·绘制图形·对角线·双重循环
手写码匠2 小时前
手写 LLM 安全护栏:从内容审核到越狱防御的完整实现
人工智能·深度学习·算法·aigc