class Heater: def findRadius(self, houses, heaters): heaters.sort() heater_len = len(heaters) radius = 0 for house in houses: low, height = 0, heater_len - 1 while low <= height: mid = (low + height) // 2 if heaters[mid] > house: height = mid - 1 else: low = mid + 1 low_distance = abs(house - heaters[height]) height_distance = abs(house - heaters[height + 1]) if height + 1 < heater_len else 922337203685477580 min_radius = min(low_distance, height_distance) if radius < min_radius: radius = min_radius print(radius) return radius houses = [1, 2, 3] heaters = [2] Heater().findRadius(houses, heaters) houses = [1, 2, 3, 4] heaters = [1, 4] Heater().findRadius(houses, heaters) houses = [1] heaters = [1, 2, 3, 4] Heater().findRadius(houses, heaters) houses = [282475249, 622650073, 984943658, 144108930, 470211272, 101027544, 457850878, 458777923] heaters = [823564440, 115438165, 784484492, 74243042, 114807987, 137522503, 441282327, 16531729, 823378840, 143542612] Heater().findRadius(houses, heaters)