其他分享
首页 > 其他分享> > LeetCode——475.供暖器

LeetCode——475.供暖器

作者:互联网

通过万岁!!!

伪代码

首先数组排序
定义返回变量ans
for遍历所有的房子,接下来找每个房子距离最近的暖气管道的位置
    记录当前房子和当前管道之间的距离
    while,条件是后面的管道离这个房子更近。
        那么j++,并获得新的距离,注意这的距离要取新距离和之前距离的最小值
    ans = 当前距离和ans的最大值
return ans即可。

java代码

class Solution {
    public int findRadius(int[] houses, int[] heaters) {
        Arrays.sort(houses);
        Arrays.sort(heaters);
        int ans = 0;
        for (int i = 0, j = 0; i < houses.length; i++) {
            int curDistance = Math.abs(houses[i] - heaters[j]);// 当前的距离
            // 找距离j最近的管道的位置
            while (j < heaters.length - 1 && Math.abs(houses[i] - heaters[j]) >= Math.abs(houses[i] - heaters[j + 1])) {
                j++;
                curDistance = Math.min(curDistance, Math.abs(houses[i] - heaters[j]));
            }
            ans = Math.max(ans, curDistance);
        }
        return ans;
    }
}

标签:heaters,供暖,ans,距离,房子,houses,暖气,475,LeetCode
来源: https://blog.csdn.net/qq_39056803/article/details/122061893