zoukankan      html  css  js  c++  java
  • 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)
    

  • 相关阅读:
    HttpWebRequest后台读取网页类
    MD5加密方法
    Base64封装类
    3DES封装类
    C#操作XML类
    XML_Qt_资料
    XML_CPP_资料
    h.264_javascript_资料
    ffmpeg_资料_01
    QWebEngineView_简单例子_01
  • 原文地址:https://www.cnblogs.com/panweiwei/p/13065267.html
Copyright © 2011-2022 走看看