Heaters LeetCode solution in Python
1# Runtime: 766 ms (Top 22.98%) | Memory: 17.7 MB (Top 39.36%)2class Solution:3def findRadius(self, houses: List[int], heaters: List[int]) -> int:4""" """56houses.sort()7heaters.sort()89max_radius = -inf1011for house in houses:12i = bisect_left(heaters, house)1314if i == len(heaters):15max_radius = max(max_radius, house - heaters[-1])16elif i == 0:17max_radius = max(max_radius, heaters[i] - house)18else:19curr = heaters[i]20prev = heaters[i - 1]21max_radius = max(max_radius, min(abs(house - curr), abs(house - prev)))2223return max_radius2425# O(NLOGN)