2022-2-7 Leetcode 475.供暖器
我的思路是在房屋的位置里面找热水器的位置,(为什么这样做不好?因为会有多个热水器
而正确的应该是在热水器里面找里房屋最近的热水器。
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.供暖器相关推荐
- LeetCode 475. 供暖器(双指针二分查找)
文章目录 1. 题目 2. 解题 2.1 双指针 2. 二分查找 1. 题目 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置, ...
- leetcode 工作每日一题 475. 供暖器 (二分 stl)
题意: 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖.在加热器的加热半径范围内的每个房屋都可以获得供暖.现在,给出位于一条水平线上的房屋 houses 和供暖器 heater ...
- leetcode 475. Heaters | 475. 供暖器(找最后一个不大于target的值/第一个不小于target的值)
题目 https://leetcode.com/problems/heaters/ 题解 class Solution {public int findRadius(int[] houses, int ...
- leetCode每日一题js--01供暖器
供暖器 题目: 在加热器的加热半径范围内的每个房屋都可以获得供暖. 现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径. 说 ...
- 2022-01-27:供暖器。 冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。 在加热器的加热半径范围内的每个房屋都可以获得供暖。 现在,给出位于一条水平线上的房屋 hous
2022-01-27:供暖器. 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 在加热器的加热半径范围内的每个房屋都可以获得供暖. 现在,给出位于一条水平线上的房屋 hous ...
- leetcode475. 供暖器(二分查找)
冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径. 所以,你的输入将会是房屋和供暖器的位置. ...
- Leetcode475.Heaters供暖器
冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径. 所以,你的输入将会是房屋和供暖器的位置. ...
- Heaters 供暖器
冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径. 所以,你的输入将会是房屋和供暖器的位置. ...
- 2022-6-5 供暖器,最小差,两地调度,峰与谷
1. 供暖器 [双指针or二分] 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 在加热器的加热半径范围内的每个房屋都可以获得供暖. 现在,给出位于一条水平线上的房屋 hou ...
最新文章
- ES6 系列之 let 和 const
- SpringCloud:入门介绍
- 三个基本原理和概念 - 计算机图形学、数据加密、数据挖掘
- 【Qt】QModbusServer类
- 2020年有赞云生态发展白皮书
- 算法提高 陶陶摘苹果2(java)
- Spark源码分析之SchedulerBackend分析
- [NLP]OpenNLP标记器的使用
- c++学习---继承与派生类
- StretchDIBits速度测试(COLORONCOLOR)
- 怎么用电脑录音,在电脑上录制音频的方法
- FPGA的学习:TFT_LCD液晶屏字符显示
- 山西流传于百姓餐桌的宫府名菜——山西过油肉
- auto.js B0013 查找父控件子控件进入阅读文章视频学习每日答题2021-10-03
- 二级菜单原生js实现
- Python绘制图像(Matplotlib)(Ⅵ)
- 关于淘宝网评论数据的抓取
- 批处理和流处理如何区分? 有边界数据和无边界数据如何区分?
- linux部署springboot项目
- 与高铁“赛跑”的外卖小哥