475. Heaters
来源:互联网 发布:国家知织产权局专利局 编辑:程序博客网 时间:2024/06/07 02:39
简单题,不过细节要考虑的很细。一开始想错了,以为house不在相邻两个heater的区间上,那么就不行了。其实完全没有这个条件,如果在这个heat上不行,那么就在下一个heater上找,如果搜索了一遍还是找不到,那么这个radia就不行。
class Solution {public: bool judge(int radia,vector<int>& houses, vector<int>& heaters) { int left=heaters[0]-radia; int right; if(heaters[0]>=INT_MAX-radia) right=INT_MAX; else right=heaters[0]+radia; int houseIndex=0; int heaterIndex=0; while(houseIndex<houses.size()&&heaterIndex<heaters.size()) { if((houses[houseIndex]>=left&&houses[houseIndex]<=right)) houseIndex++; else { heaterIndex++; if(heaterIndex<heaters.size()) { left=heaters[heaterIndex]-radia; if(heaters[heaterIndex]>=INT_MAX-radia) right=INT_MAX; else right=heaters[heaterIndex]+radia; } } } if(houseIndex==houses.size()) return true; else return false; } int findRadius(vector<int>& houses, vector<int>& heaters) { sort(houses.begin(),houses.end()); sort(heaters.begin(),heaters.end()); if(houses.size()==0) return 0; int left=0; int right=houses.back()>heaters.back()?houses.back():heaters.back(); while(1) { int mid=left+(right-left)/2; if(judge(mid,houses,heaters)) right=mid; else left=mid+1; if(left==right) break; } return left; }};
0 0
- 475. Heaters
- 475. Heaters*
- 475. Heaters
- 475. Heaters
- 475. Heaters
- 475. Heaters
- 475. Heaters
- 475. Heaters
- 475. Heaters
- 475. Heaters
- 475. Heaters
- LeetCode 475. Heaters
- LeetCode 475. Heaters
- 【Leetcode】475. Heaters
- 【LeetCode】 475. Heaters
- Leetcode-475. Heaters
- [leetcode]475. Heaters
- [leetcode]475. Heaters
- 【机器学习】判别模型vs生成模型
- 阿里面试题-如何减少上下文切换?
- Java lambda 表达式
- 容器之HashMap浅谈
- CC3200库函数调用-自用控制引脚
- 475. Heaters
- vue.js $set的使用 数组
- 离散数学数理逻辑部分部分稿件loading
- 消除RadioButton中的自带的圆圈
- PHP CURL模拟登录 获取数据
- 青蛙变态跳台阶
- MySQL中间件Atlas快速安装
- 【Mybatis】---高级映射之一对多查询
- O'Stolz 定理及其应用