leetcode题解记录-622设计循环队列(python3)

it2025-01-21  10

题目

设计循环队列 题目链接 官方题解

关键词

队列,数组

代码记录

class MyCircularQueue: def __init__(self, k: int): """ Initialize your data structure here. Set the size of the queue to be k. """ self.queue=[None for i in range(k)] self.head=0 self.tail=0 self.size=k def enQueue(self, value: int) -> bool: """ Insert an element into the circular queue. Return true if the operation is successful. """ if self.isFull(): return False if self.head==self.tail and self.queue[self.head]==None: self.queue[self.head]=value else: to_insert=(self.head-1)%self.size self.queue[to_insert]=value self.head=to_insert return True def deQueue(self) -> bool: """ Delete an element from the circular queue. Return true if the operation is successful. """ if self.isEmpty(): return False self.queue[self.tail]=None if not self.head==self.tail: self.tail=(self.tail-1)%self.size return True def Front(self) -> int: """ Get the front item from the queue. """ return self.queue[self.tail] if not self.isEmpty() else -1 def Rear(self) -> int: """ Get the last item from the queue. """ return self.queue[self.head] if not self.isEmpty() else -1 def isEmpty(self) -> bool: """ Checks whether the circular queue is empty or not. """ return True if self.head==self.tail and self.queue[self.head]==None else False def isFull(self) -> bool: """ Checks whether the circular queue is full or not. """ return True if (self.head-1)%self.size==self.tail else False
最新回复(0)