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

运行结果

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

相关推荐
wuweijianlove4 小时前
算法性能的渐近与非渐近行为对比的技术4
算法
研究点啥好呢4 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
_dindong4 小时前
cf1091div2 C.Grid Covering(数论)
c++·算法
AI成长日志4 小时前
【Agentic RL】1.1 什么是Agentic RL:从传统RL到智能体学习
人工智能·学习·算法
沫璃染墨4 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++
黎阳之光4 小时前
黎阳之光:视频孪生领跑者,铸就中国数字科技全球竞争力
大数据·人工智能·算法·安全·数字孪生
skywalker_114 小时前
力扣hot100-3(最长连续序列),4(移动零)
数据结构·算法·leetcode
6Hzlia4 小时前
【Hot 100 刷题计划】 LeetCode 17. 电话号码的字母组合 | C++ 回溯算法经典模板
c++·算法·leetcode
wfbcg5 小时前
每日算法练习:LeetCode 209. 长度最小的子数组 ✅
算法·leetcode·职场和发展
_日拱一卒5 小时前
LeetCode:除了自身以外数组的乘积
数据结构·算法·leetcode