冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。
在加热器的加热半径范围内的每个房屋都可以获得供暖。
现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。
说明:所有供暖器都遵循你的半径标准,加热的半径也一样。
示例 1:
输入: houses = [1,2,3], heaters = [2]
输出: 1
解释: 仅在位置2上有一个供暖器。如果我们将加热半径设为1,那么所有房屋就都能得到供暖。
思路:
计算每个供暖气到每个房间的距离,有多个供暖器时,每个房间都选择最近的供暖器,因为每个供暖期的供暖半径一致,为了让所有的房间都能供暖,则选择所有房间中供暖距离最大的
代码:
public int findRadius(int[] houses, int[] heaters) {
//每个供暖点到每个房子的距离
int ans = 0;
for (int i = 0; i < houses.length;i++) {
int min = Integer.MAX_VALUE;
for (int j = 0; j< heaters.length;j++) {
min = Math.min(min,Math.abs(heaters[j] - houses[i]));
}
ans = Math.max(ans,min);
}
return ans;
}