领扣LintCode算法问题答案-1219. 加热器
发布日期:2021-06-30 17:10:24 浏览次数:2 分类:技术文章

本文共 1214 字,大约阅读时间需要 4 分钟。

领扣LintCode算法问题答案-1219. 加热器

目录

1219. 加热器

描述

冬天来啦!你的任务是设计出一个具有固定加热半径的加热器,使得所有房屋在这个冬天不至于太冷。

现在你能够获知所有房屋和加热器所处的位置,它们均分布在一条水平线中。你需要找出最小的加热半径使得所有房屋都处在至少一个加热器的加热范围内。

所以,你的输入将会是所有房屋和加热器所处的位置,期望输出为加热器最小的加热半径。

  • 房屋和加热器的数目均为非负整数,并且它们不会超过25000。
  • 房屋和加热器的位置均为非负整数,并且它们不会超过10^9。
  • 只要一间房屋位于加热器的加热半径内(包括边界),它就会被加热。
  • 所有加热器的加热半径相同。

样例 1:

输入:[1,2,3],[2]输出:1说明:唯一的一个加热器被放在2的位置,那么只要加热半径为1,就能覆盖到所有房屋了。

样例 2:

输入:[1,2,3,4],[1,4]输出:1说明:两个加热器分别位于1和4,只需要加热半径为1,就能加热所有房屋了。

题解

public class Solution {
/** * @param houses: positions of houses * @param heaters: positions of heaters * @return: the minimum radius standard of heaters */ public int findRadius(int[] houses, int[] heaters) {
// Write your code here int ret = Integer.MIN_VALUE; for (int house : houses) {
int minRad = Integer.MAX_VALUE; for (int heater : heaters) {
int rad = Math.abs(house - heater); if (rad < minRad) {
minRad = rad; } } if (minRad > ret) {
ret = minRad; } } return ret; }}

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。

欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

转载地址:https://le-yi.blog.csdn.net/article/details/108899478 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【精】LintCode领扣算法问题答案:1225. 岛的周长
下一篇:领扣LintCode算法问题答案-1218. 补数

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月08日 08时39分38秒