Heaters

题目来源
有n个房子,n个加热器,问加热器加热范围半径得多大才可以覆盖所有房子。
我一开始用暴力做法,找出每个房子离哪个加热器最近,然后记录下来,最后求一下哪个房子离所有的加热器最远,就是我们想要的结果。
代码如下:

class Solution {
public:
    int findRadius(vector<int>& houses, vector<int>& heaters) {
        int n1 = houses.size(), n2 = heaters.size(), res = 0;
        for (int i=0; i<n1; i++) {
            int minDis = INT_MAX;
            for (int j=0; j<n2; j++) {
                minDis = min(minDis, abs(heaters[j] - houses[i]));
            }
            res = max(minDis, res);
        }
        return res;
    }
};

然后就超时了…看了下tags,用二分,然后就AC了,注意这俩数组不是有序的…我以为是有序的,搞了半天…

class Solution {
public:
    int findRadius(vector<int>& houses, vector<int>& heaters) {
        int n1 = houses.size(), n2 = heaters.size(), res = 0;
        sort(houses.begin(), houses.end());
        sort(heaters.begin(), heaters.end());
        for (int i=0; i<n1; i++) {
            int minDis = INT_MAX;
            int l = 0, r = n2 - 1;
            while (l <= r) {
                int mid = (l + r) / 2;
                if (heaters[mid] == houses[i]) {
                    minDis = 0;
                    break;
                }
                else if (heaters[mid] < houses[i]) {
                    l = mid + 1;
                    minDis = min(minDis, houses[i] - heaters[mid]);
                }
                else {
                    r = mid - 1;
                    minDis = min(minDis, heaters[mid] - houses[i]);
                }
            }
            res = max(minDis, res);
        }
        return res;
    }
};
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 13,150评论 0赞 33
  • ** 你不用“出名要趁早” ** 作者 | 王瑞插图 | tofuvi 有两个姑娘,姗茹和祝灵灵。上小学的时候两个...
    瑞和她的浅岛繁花阅读 746评论 0赞 4
  • 今天我拿着冰淇淋坐在广场看人来人往,一个打扮的很邋遢的老人路过看了我一眼,我就对他微笑,他也就直接过来坐我旁边。第...
    马倩马倩马倩马阅读 275评论 0赞 0
  • Bower是一个客户端技术的软件包管理器,它可用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网...
    狗狗嗖阅读 1,045评论 0赞 0
  • 从报纸上读到一篇文章,其中一个用钢板蜡纸刻字,用墨滾印刷的情节一下子让我想起了读中专时的一段岁月,想起了一个人。 ...
    竹影飘摇阅读 332评论 0赞 0

友情链接更多精彩内容