当前位置:网站首页>leetcode:622. 设计循环队列【循环队列板子】
leetcode:622. 设计循环队列【循环队列板子】
2022-08-02 17:49:00 【白速龙王的回眸】
设计思路
用一个数组模拟,要多留一个空位
front和rear记录头尾,注意rear是最后一个元素的后一个,初始都是0
空的话两个相等,满的话rear + 1 = front(mod k + 1)
然后最后一个元素注意是rear - 1(mod k + 1)取出来的
其他的话就双指针移动即可
Ac code
class MyCircularQueue:
# 循环队列学习
def __init__(self, k: int):
# 为了区分满和空,存储空间会多一个位置
self.front = self.rear = 0
self.elements = [0] * (k + 1)
def enQueue(self, value: int) -> bool:
if self.isFull():
return False
self.elements[self.rear] = value
self.rear = (self.rear + 1) % len(self.elements)
return True
def deQueue(self) -> bool:
if self.isEmpty():
return False
self.front = (self.front + 1) % len(self.elements)
return True
def Front(self) -> int:
return -1 if self.isEmpty() else self.elements[self.front]
def Rear(self) -> int:
return -1 if self.isEmpty() else self.elements[(self.rear - 1) % len(self.elements)]
def isEmpty(self) -> bool:
return self.front == self.rear
def isFull(self) -> bool:
return (self.rear + 1) % len(self.elements) == self.front
# Your MyCircularQueue object will be instantiated and called as such:
# obj = MyCircularQueue(k)
# param_1 = obj.enQueue(value)
# param_2 = obj.deQueue()
# param_3 = obj.Front()
# param_4 = obj.Rear()
# param_5 = obj.isEmpty()
# param_6 = obj.isFull()
总结
循环队列学习
边栏推荐
- 【21天学习挑战赛学习打卡】顺序查找
- How to ensure the security of smart factories?
- KunlunBase 1.0 发布了!
- 搭建属于自己的知识库(Wikijs)
- 0725-面试记录
- MySQL索引
- pydev debugger: warning: trying to add breakpoint to file that does not exist: /tmp/xxx
- Open Source Summer | [Cloud Native] DevOps (5): Integrating Harbor
- Data Governance: The Evolution of Data Integration and Application Patterns
- Cpolar application example of data acquisition equipment
猜你喜欢
随机推荐
在线文档Sheet技术解析
cache2go-源码阅读
红队实战靶场ATT&CK(一)
Local broadcast MSE fragments mp4 service
redis总结_基础
一朵“云“如何带来产业新变革
透过案例看清API接口的作用——演示1688商品详情接口
灵动微电子发布低功耗 MM32L0130 系列 MCU 产品
成功部署工业物联网的五个关键
The days of patching are more difficult than the days of writing code
pydev debugger: warning: trying to add breakpoint to file that does not exist: /tmp/xxx
How to deal with security risks posed by machine identities
POE交换机常见问题解答
HDF驱动框架的API(3)
Navicat 连接Oracle时提示oracle library is not loaded的问题解决
Enterprise cloud cost control, are you really doing it right?
故障分析 | 一条 SELECT 语句跑崩了 MySQL ,怎么回事?
发挥云网融合优势,天翼云为政企铺设数字化转型跑道
【21天学习挑战赛学习打卡】顺序查找
55.【sort函数的升序降序】