Skip to content

Commit da182bc

Browse files
committed
Runtime: 182 ms (Top 65.24%) | Memory: 20.7 MB (Top 5.08%)
1 parent 0a37a1f commit da182bc

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

scripts/algorithms/E/Exam Room/Exam Room.py

+16-15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Runtime: 182 ms (Top 65.24%) | Memory: 20.7 MB (Top 5.08%)
12
class ExamRoom:
23

34
def __init__(self, n: int):
@@ -9,20 +10,20 @@ def __init__(self, n: int):
910
def seat(self) -> int:
1011
start, end, distance = heapq.heappop(self.pq)
1112
self.dict.pop(start, None) #Remove old segment from dictionary
12-
self.dict.pop(end, None)
13+
self.dict.pop(end, None)
1314

14-
if start == end:
15+
if start == end:
1516
position = start
16-
17+
1718
elif start == 0:
1819
position = start
1920
right = self.addSegment(start + 1, end)
20-
21+
2122
elif end == self.N - 1:
2223
position = end
2324
left = self.addSegment(start, end - 1)
24-
25-
elif end - start == 1: #ONLY ONE PLACE TO PUT
25+
26+
elif end - start == 1: #ONLY ONE PLACE TO PUT
2627
position = start
2728
left = self.addSegment(start + 1, end)
2829

@@ -32,34 +33,34 @@ def seat(self) -> int:
3233
left = self.addSegment(position + 1, end)
3334

3435
return position
35-
36+
3637
def leave(self, p: int) -> None:
3738
left = self.dict.get(p - 1, None)
3839
right = self.dict.get(p + 1, None)
39-
40+
4041
new_start = new_end = p
41-
42+
4243
if left:
4344
self.removeSegment(left)
4445
new_start = left.start
4546

4647
if right:
4748
self.removeSegment(right)
4849
new_end = right.end
49-
50+
5051
self.addSegment(new_start, new_end)
5152

5253
def addSegment(self, start, end):
5354
segment = Segment(start, end, self.N)
5455
self.dict[segment.start] = segment
5556
self.dict[segment.end] = segment
5657
heapq.heappush(self.pq, segment)
57-
58+
5859
def removeSegment(self, segment):
5960
self.dict.pop(segment.start, None)
6061
self.dict.pop(segment.end, None)
6162
self.pq.remove(segment)
62-
63+
6364
class Segment():
6465
def __init__(self, start, end, N):
6566
self.start = start
@@ -77,7 +78,7 @@ def calculateDistance(self, start, end, N):
7778
return end - start
7879

7980
else:
80-
return (end - start) // 2
81-
81+
return (end - start) // 2
82+
8283
def __iter__(self):
83-
return iter((self.start, self.end, self.distance))
84+
return iter((self.start, self.end, self.distance))

0 commit comments

Comments
 (0)