标签:elf radius 最小值 之间 并且 self def 图片 一个
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)
标签:elf radius 最小值 之间 并且 self def 图片 一个
原文地址:https://www.cnblogs.com/panweiwei/p/13065267.html