当前位置:网站首页>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()
总结
循环队列学习
边栏推荐
猜你喜欢

LeetCode 2336. 无限集中的最小数字(SortedSet)

Code Inspection for DevOps

0725-面试记录

Mini Program Graduation Works WeChat Gymnasium Reservation Mini Program Graduation Design Finished Product (8) Graduation Design Thesis Template

分布式 | dble 启动的时候做了什么之配置检测

2022安全员-C证考试题库模拟考试平台操作

方法的使用

redis summary_distributed cache

小程序毕设作品之微信体育馆预约小程序毕业设计成品(8)毕业设计论文模板

天翼云4.0分布式云赋能千行百业数字化转型
随机推荐
织梦提示信息提示框美化
redis总结_多级缓存
故障分析 | 一条 SELECT 语句跑崩了 MySQL ,怎么回事?
千万级别的表分页查询非常慢,怎么办?
golang刷leetcode 经典(3) 设计推特
Security First: Tools You Need to Know to Implement DevSecOps Best Practices
Cpolar application example of data acquisition equipment
一朵“云“如何带来产业新变革
白话电子签章原理及风险
【21天学习挑战赛学习打卡】顺序查找
IReport常见问题及处理方法
Gear 月度更新|6 月
MySQL命令(命令行方式,而非图形界面方式)
MySQL索引
Enterprise cloud cost control, are you really doing it right?
开源一夏 |【云原生】DevOps(五):集成Harbor
golang刷leetcode 字符串(4)逆波兰式
在线文档Sheet技术解析
HDF驱动框架的API(3)
百问百答第49期:极客有约——国内可观测领域SaaS产品的发展前景