475. 供暖器

exiaohu 于 2021-12-20 发布

题目链接:475. 供暖器

对每一个房子,找到其最近的供暖器与它之间的距离。这些距离的最大值即供暖器的最小加热半径。

import bisect
from typing import List


class Solution:
    def findRadius(self, houses: List[int], heaters: List[int]) -> int:
        heaters, ans = sorted(heaters), 0

        for house in houses:
            j = bisect.bisect(heaters, house)
            ans = max(ans, min(abs(heaters[j - 1] - house) if j > 0 else 1 << 31, abs(heaters[j] - house) if j < len(heaters) else 1 << 31))

        return ans