Heater2.py 904 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
class Heater:
    def findRadius(self, houses, heaters):
        heaters.sort()
        houses.sort()
        radius = 0
        i = 0
        heaters = [-1] + heaters + [float('inf')]
        for house in houses:
            while house > heaters[i]:
                i = i + 1
            current_radius = min(house - heaters[i - 1], heaters[i] - house)
            radius = max(radius, current_radius)
        print(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)