475. 供暖器

Posted panweiwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了475. 供暖器相关的知识,希望对你有一定的参考价值。

技术图片
技术图片

class Solution(object):
    def findRadius(self, houses, heaters):
        """
        :type houses: List[int]
        :type heaters: List[int]
        :rtype: int
        """
        ans = []
        heaters.sort()
        for h in houses:
            l, r = 0, len(heaters) - 1
            while l < r:
                mid = int((l + r) / 2)
                if heaters[mid] < h:
                    l = mid + 1
                else:
                    r = mid
            # 若找到的值等于 house ,则说明 house 房屋处放有一个加热器,house 房屋到加热器的最短距离为 0
            if heaters[l] == h:
                ans.append(0)
            # 若该加热器的坐标值小于 house ,说明该加热器的坐标与 house 之间没有别的加热器
            elif heaters[l] < h:
                ans.append(h - heaters[l])
            # 若该加热器的坐标值大于 house 并且left不等于 0 ,说明 house 介于left和left-1之间,
            # 房屋到加热器的最短距离就是left和left - 1处加热器与 house 差值的最小值
            elif l:
                ans.append(min(heaters[l] - h, h - heaters[l - 1]))
            else:
                ans.append(heaters[l] - h)
        return max(ans)



以上是关于475. 供暖器的主要内容,如果未能解决你的问题,请参考以下文章

475. 供暖器

475. 供暖器

Leetcode 475.供暖气

leetcode每日一题(475.供暖器)

leetcode 工作每日一题 475. 供暖器 (二分 stl)

leetcode 工作每日一题 475. 供暖器 (二分 stl)