我的思路是在房屋的位置里面找热水器的位置,(为什么这样做不好?因为会有多个热水器
而正确的应该是在热水器里面找里房屋最近的热水器。


int minRadius(vector<int>& heaters, int& target) {if (target < heaters[0]) return heaters[0] - target;if (target > heaters[heaters.size() - 1]) return target - heaters[heaters.size() - 1];int mid = 0, low = 0, high = heaters.size() - 1;//房子不在供暖器的范围里根本就不需要查找,要查找的是在供暖器范围内的房子while (low + 1 < high){mid = low + (high - low) / 2;if (target == heaters[mid]) return 0;else if (target > heaters[mid]) {low = mid;}else {high = mid;}}//差值为1的时候就停止判断,所以需要再进行判断一下//一直没有搞懂二分查找 l<=h的关系以及他们所构成的区间的关系。//终止条件是low+1 = right,也就是确定了房子两端的供暖器的位置//如果找得到位置就先确定位置,如果找不到位置就确定位区间。if (heaters[low] == target || heaters[high] == target) return 0;else{    return min(fabs(target - heaters[low]), fabs(target - heaters[high]));}
}int findRadius(vector<int>& houses, vector<int>& heaters) {if (heaters.size() == 1) return max(heaters[0] - houses[0], houses[houses.size() - 1] - heaters[0]);//如果只有一个热水器,那就判断这个热水器和房屋前后的距离。sort(heaters.begin(), heaters.end());//对热水器进行排序int temp,maxRaius = 0;for (vector<int>::iterator it = houses.begin(); it != houses.end();++it ) {temp=minRadius(heaters, *it);maxRaius = maxRaius > temp ? maxRaius : temp;//cout << maxRaius << endl;}//cout << maxRaius << endl;return maxRaius;
}

2022-2-7 Leetcode 475.供暖器相关推荐

  1. LeetCode 475. 供暖器(双指针二分查找)

    文章目录 1. 题目 2. 解题 2.1 双指针 2. 二分查找 1. 题目 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置, ...

  2. leetcode 工作每日一题 475. 供暖器 (二分 stl)

    题意: 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖.在加热器的加热半径范围内的每个房屋都可以获得供暖.现在,给出位于一条水平线上的房屋 houses 和供暖器 heater ...

  3. leetcode 475. Heaters | 475. 供暖器(找最后一个不大于target的值/第一个不小于target的值)

    题目 https://leetcode.com/problems/heaters/ 题解 class Solution {public int findRadius(int[] houses, int ...

  4. leetCode每日一题js--01供暖器

    供暖器 题目: 在加热器的加热半径范围内的每个房屋都可以获得供暖. 现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径. 说 ...

  5. 2022-01-27:供暖器。 冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。 在加热器的加热半径范围内的每个房屋都可以获得供暖。 现在,给出位于一条水平线上的房屋 hous

    2022-01-27:供暖器. 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 在加热器的加热半径范围内的每个房屋都可以获得供暖. 现在,给出位于一条水平线上的房屋 hous ...

  6. leetcode475. 供暖器(二分查找)

    冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径. 所以,你的输入将会是房屋和供暖器的位置. ...

  7. Leetcode475.Heaters供暖器

    冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径. 所以,你的输入将会是房屋和供暖器的位置. ...

  8. Heaters 供暖器

    冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径. 所以,你的输入将会是房屋和供暖器的位置. ...

  9. 2022-6-5 供暖器,最小差,两地调度,峰与谷

    1. 供暖器 [双指针or二分] 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 在加热器的加热半径范围内的每个房屋都可以获得供暖. 现在,给出位于一条水平线上的房屋 hou ...

最新文章

  1. ES6 系列之 let 和 const
  2. SpringCloud:入门介绍
  3. 三个基本原理和概念 - 计算机图形学、数据加密、数据挖掘
  4. 【Qt】QModbusServer类
  5. 2020年有赞云生态发展白皮书
  6. 算法提高 陶陶摘苹果2(java)
  7. Spark源码分析之SchedulerBackend分析
  8. [NLP]OpenNLP标记器的使用
  9. c++学习---继承与派生类
  10. StretchDIBits速度测试(COLORONCOLOR)
  11. 怎么用电脑录音,在电脑上录制音频的方法
  12. FPGA的学习:TFT_LCD液晶屏字符显示
  13. 山西流传于百姓餐桌的宫府名菜——山西过油肉
  14. auto.js B0013 查找父控件子控件进入阅读文章视频学习每日答题2021-10-03
  15. 二级菜单原生js实现
  16. Python绘制图像(Matplotlib)(Ⅵ)
  17. 关于淘宝网评论数据的抓取
  18. 批处理和流处理如何区分? 有边界数据和无边界数据如何区分?
  19. linux部署springboot项目
  20. 与高铁“赛跑”的外卖小哥

热门文章

  1. FPGA Xilinx 7系列高速收发器GTX通信
  2. SpringBoot实现服务器PDF文件的下载和预览功能
  3. 管道爬行机器人内部陀螺仪_油管内壁爬行机器人的机械结构设计
  4. python编程免费小说_Python编程学习教程:用python给自己DIY一款小说阅读器
  5. Arduino 和LCD1602显示屏
  6. 东软移动互联网事业部SMIAS短信网关系统
  7. 找回浏览器记住的密码
  8. 推荐一款基于chromium的套壳浏览器——vivaldi
  9. cuckoo沙箱踩坑和填坑记录
  10. 使用PyTorch实现自己的图像分类