leetcode 475. Heaters | 475. 供暖器(找最后一个不大于target的值/第一个不小于target的值)
题目
https://leetcode.com/problems/heaters/
题解
class Solution {public int findRadius(int[] houses, int[] heaters) {Arrays.sort(heaters);int max = Integer.MIN_VALUE;for (int house : houses) {int floor = floor(heaters, house, 0, heaters.length - 1);int ceiling = ceiling(heaters, house, 0, heaters.length - 1);if (floor >= 0 && ceiling >= 0)max = Math.max(max, Math.min(Math.abs(floor - house), Math.abs(ceiling - house)));else if (floor >= 0) max = Math.max(max, Math.abs(floor - house));else max = Math.max(max, Math.abs(ceiling - house));}return max;}// 找最后一个不大于target的值public int ceiling(int[] arr, int target, int L, int R) {if (arr[0] > target) return -1;while (L < R) {int M = (L + R + 1) / 2; // 让M靠R侧if (arr[M] == target) {return arr[M];} else if (arr[M] < target) { // 保左端点if (L == M) return arr[L];L = M;} else {R = M - 1;}}if (L >= arr.length) return -1;else return arr[L];}// 找第一个不小于target的值public int floor(int[] arr, int target, int L, int R) {if (arr[R] < target) return -1;while (L < R) {int M = (L + R) / 2; // 让M靠L侧if (arr[M] == target) {return arr[M];} else if (arr[M] < target) {L = M + 1;} else { // 保右端点if (R == M) return arr[M];R = M;}}if (L >= arr.length) return -1;else return arr[L];}
}
leetcode 475. Heaters | 475. 供暖器(找最后一个不大于target的值/第一个不小于target的值)相关推荐
- c语言给定整数求紧随素数,C语言:找出一个大于给定整数m且紧随m的素数,-求出能整除x且不是偶数的数的个数,...
//函数fun功能:找出一个大于给定整数m且紧随m的素数,并作为函数值返回. #include #include #include int fun( int m) { int i,k; for (i= ...
- LeetCode 475. 供暖器(双指针二分查找)
文章目录 1. 题目 2. 解题 2.1 双指针 2. 二分查找 1. 题目 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置, ...
- 2022-2-7 Leetcode 475.供暖器
我的思路是在房屋的位置里面找热水器的位置,(为什么这样做不好?因为会有多个热水器 而正确的应该是在热水器里面找里房屋最近的热水器. int minRadius(vector<int>&am ...
- leetcode 工作每日一题 475. 供暖器 (二分 stl)
题意: 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖.在加热器的加热半径范围内的每个房屋都可以获得供暖.现在,给出位于一条水平线上的房屋 houses 和供暖器 heater ...
- leetCode每日一题js--01供暖器
供暖器 题目: 在加热器的加热半径范围内的每个房屋都可以获得供暖. 现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径. 说 ...
- Leetcode475.Heaters供暖器
冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径. 所以,你的输入将会是房屋和供暖器的位置. ...
- Heaters 供暖器
冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径. 所以,你的输入将会是房屋和供暖器的位置. ...
- 2022-01-27:供暖器。 冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。 在加热器的加热半径范围内的每个房屋都可以获得供暖。 现在,给出位于一条水平线上的房屋 hous
2022-01-27:供暖器. 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 在加热器的加热半径范围内的每个房屋都可以获得供暖. 现在,给出位于一条水平线上的房屋 hous ...
- 2022-6-5 供暖器,最小差,两地调度,峰与谷
1. 供暖器 [双指针or二分] 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 在加热器的加热半径范围内的每个房屋都可以获得供暖. 现在,给出位于一条水平线上的房屋 hou ...
最新文章
- 源码测评:来客推开发源码能用来做什么模式的商城?B2B2C?S2B2C?云集模式?淘宝模式?
- Package xxx is not available, but is referred to by another package
- JAVA不使用POI给Word文档添加水印
- 2014 ecb,_it’s_easy_as_123(修改bmp文件头) 攻防世界;
- centos7安装Java
- Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
- FZU	2095 水面高度
- 前端学习(693):for循环案例之求出偶数奇数之和
- 阿里云 云服务器ECS(CentOS 8.0 64位) 安装 MySQL 数据库
- Corba传值包含中文解决
- Struts2学习笔记(七) 结果(Result)(下)
- 【图像修复】基于matlab GUI空域滤波图像复原【含Matlab源码 849期】
- python123第九周测验答案2020_2020知到答案 大数据分析的python基础 最新智慧树满分章节测试答案...
- Python常用模块 之 re模块
- 人工智能导论(10)——机器人(Robot)
- Zint 库:Zint库的编译及使用(二维码QrCode生码),MFC/VC使用实例
- 谢震业,离“苏神”还有多远?
- 网盾极风云:五分钟搞懂HTTP和HTTPS
- C. Keshi Is Throwing a Party(二分答案),最/佳牛围栏,average。
- ccks2020中文短文本实体链接任务测评论文--小米团队--第一名
热门文章
- 牛客多校2 - Boundary(几何)
- PAT (Advanced Level) 1004 Counting Leaves(树的遍历)
- 制作linux安装镜像文件,制作CentOS 6.5一键自安装ISO镜像光盘 | 聂扬帆博客
- atlas mysql 读写分离_MySQL读写分离工具Atlas
- HDU4577(2013年ACM杭州赛区邀请赛B题)
- 14.结构体struct.rs
- Android Studio 构建
- C++ STL : 模拟实现STL中的关联式容器unordered_map/unordered_set
- 程序员十大心愿,程序员:你这么了解我的心声的嘛!
- [八]RabbitMQ-客户端源码之ChannelN