Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0f3af6a

Browse files
Merge pull request cy69855522#9 from grg909/master
fix 622 MyCircularQueue
2 parents e6d582d + 94a5ee5 commit 0f3af6a

File tree

1 file changed

+32
-17
lines changed

1 file changed

+32
-17
lines changed

‎README.md‎

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2406,59 +2406,74 @@ class MyCircularQueue:
24062406
def __init__(self, k: int):
24072407
"""
24082408
Initialize your data structure here. Set the size of the queue to be k.
2409+
:param k:
2410+
:return:
24092411
"""
2410-
self.size = k
2411-
self.data = []
2412+
self.size = 0
2413+
self.max_size = k
2414+
self.data = [0] * k
2415+
self.front = self.rear = -1
24122416

24132417
def enQueue(self, value: int) -> bool:
24142418
"""
24152419
Insert an element into the circular queue. Return true if the operation is successful.
2420+
:param value:
2421+
:return:
24162422
"""
24172423
if self.isFull():
24182424
return False
2419-
2420-
self.data.append(value)
2425+
2426+
if self.rear == -1:
2427+
self.rear = self.front = 0
2428+
else:
2429+
self.rear = (self.rear + 1) % self.max_size
2430+
2431+
self.data[self.rear] = value
2432+
self.size += 1
24212433
return True
24222434

24232435
def deQueue(self) -> bool:
24242436
"""
24252437
Delete an element from the circular queue. Return true if the operation is successful.
2438+
:return:
24262439
"""
24272440
if self.isEmpty():
24282441
return False
2429-
2430-
self.data.pop(0)
2442+
2443+
if self.front == self.rear:
2444+
self.front = self.rear = -1
2445+
else:
2446+
self.front = (self.front + 1) % self.max_size
2447+
self.size -= 1
24312448
return True
24322449

24332450
def Front(self) -> int:
24342451
"""
24352452
Get the front item from the queue.
2453+
:return:
24362454
"""
2437-
if self.isEmpty():
2438-
return -1
2439-
2440-
return self.data[0]
2455+
return self.data[self.front] if self.size != 0 else -1
24412456

24422457
def Rear(self) -> int:
24432458
"""
24442459
Get the last item from the queue.
2460+
:return:
24452461
"""
2446-
if self.isEmpty():
2447-
return -1
2448-
2449-
return self.data[-1]
2450-
2462+
return self.data[self.rear] if self.size != 0 else -1
2463+
24512464
def isEmpty(self) -> bool:
24522465
"""
24532466
Checks whether the circular queue is empty or not.
2467+
:return:
24542468
"""
2455-
return notself.data
2469+
return self.size ==0
24562470

24572471
def isFull(self) -> bool:
24582472
"""
24592473
Checks whether the circular queue is full or not.
2474+
:return:
24602475
"""
2461-
return len(self.data) == self.size
2476+
return self.size == self.max_size
24622477

24632478

24642479
# Your MyCircularQueue object will be instantiated and called as such:

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /