Heaters LeetCode solution in Python

1
# Runtime: 766 ms (Top 22.98%) | Memory: 17.7 MB (Top 39.36%)
2
class Solution:
3
def findRadius(self, houses: List[int], heaters: List[int]) -> int:
4
""" """
5

6
houses.sort()
7
heaters.sort()
8

9
max_radius = -inf
10

11
for house in houses:
12
i = bisect_left(heaters, house)
13

14
if i == len(heaters):
15
max_radius = max(max_radius, house - heaters[-1])
16
elif i == 0:
17
max_radius = max(max_radius, heaters[i] - house)
18
else:
19
curr = heaters[i]
20
prev = heaters[i - 1]
21
max_radius = max(max_radius, min(abs(house - curr), abs(house - prev)))
22

23
return max_radius
24

25
# O(NLOGN)

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0