题目

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的值)相关推荐

  1. c语言给定整数求紧随素数,C语言:找出一个大于给定整数m且紧随m的素数,-求出能整除x且不是偶数的数的个数,...

    //函数fun功能:找出一个大于给定整数m且紧随m的素数,并作为函数值返回. #include #include #include int fun( int m) { int i,k; for (i= ...

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

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

  3. 2022-2-7 Leetcode 475.供暖器

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

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

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

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

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

  6. Leetcode475.Heaters供暖器

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

  7. Heaters 供暖器

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

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

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

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

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

最新文章

  1. 源码测评:来客推开发源码能用来做什么模式的商城?B2B2C?S2B2C?云集模式?淘宝模式?
  2. Package xxx is not available, but is referred to by another package
  3. JAVA不使用POI给Word文档添加水印
  4. 2014 ecb,_it’s_easy_as_123(修改bmp文件头) 攻防世界;
  5. centos7安装Java
  6. Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
  7. FZU 2095 水面高度
  8. 前端学习(693):for循环案例之求出偶数奇数之和
  9. 阿里云 云服务器ECS(CentOS 8.0 64位) 安装 MySQL 数据库
  10. Corba传值包含中文解决
  11. Struts2学习笔记(七) 结果(Result)(下)
  12. 【图像修复】基于matlab GUI空域滤波图像复原【含Matlab源码 849期】
  13. python123第九周测验答案2020_2020知到答案 大数据分析的python基础 最新智慧树满分章节测试答案...
  14. Python常用模块 之 re模块
  15. 人工智能导论(10)——机器人(Robot)
  16. Zint 库:Zint库的编译及使用(二维码QrCode生码),MFC/VC使用实例
  17. 谢震业,离“苏神”还有多远?
  18. 网盾极风云:五分钟搞懂HTTP和HTTPS
  19. C. Keshi Is Throwing a Party(二分答案),最/佳牛围栏,average。
  20. ccks2020中文短文本实体链接任务测评论文--小米团队--第一名

热门文章

  1. 牛客多校2 - Boundary(几何)
  2. PAT (Advanced Level) 1004 Counting Leaves(树的遍历)
  3. 制作linux安装镜像文件,制作CentOS 6.5一键自安装ISO镜像光盘 | 聂扬帆博客
  4. atlas mysql 读写分离_MySQL读写分离工具Atlas
  5. HDU4577(2013年ACM杭州赛区邀请赛B题)
  6. 14.结构体struct.rs
  7. Android Studio 构建
  8. C++ STL : 模拟实现STL中的关联式容器unordered_map/unordered_set
  9. 程序员十大心愿,程序员:你这么了解我的心声的嘛!
  10. [八]RabbitMQ-客户端源码之ChannelN