当前位置: 面试刷题>> 加热器 (经典算法题500道)


### 题目描述补充 **题目:加热器问题** 假设你有一个一维的加热器设备,它的长度是固定的,我们用一个整数数组 `heaters` 来表示,其中 `heaters[i]` 表示位置 `i` 上有一个加热器,其加热范围为它左右各 `radius` 个单位(包含 `radius` 本身)。现在,给定一个整数 `radius` 和一个整数 `target`,表示你需要在位置 `target` 上放置一个温度计来测量温度。 你的任务是找到温度计在位置 `target` 上时,它能感受到的**最高温度**。温度计可以感受到来自左侧和右侧加热器的温度,但只会记录感受到的最高温度。 **注意**: - 如果没有加热器在 `target` 的加热范围内,则温度计感受的温度为 0。 - 如果有多个加热器在 `target` 的加热范围内,温度计将记录这些加热器中的最高温度。 ### 示例 **输入**: - `heaters = [1, 2, 3]` - `radius = 1` - `target = 2` **输出**: - `3` **解释**: - 加热器在位置 1, 2, 3 上,加热半径为 1。 - 温度计在位置 2 上,它可以感受到来自位置 2 和位置 3 的加热器的温度,其中位置 3 的加热器温度最高,为 3。 ### PHP 示例代码 ```php function findRadiusHeat($heaters, $radius, $target) { $maxTemp = 0; foreach ($heaters as $heater) { if (abs($heater - $target) <= $radius) { $maxTemp = max($maxTemp, $heater); } } return $maxTemp; } // 示例用法 $heaters = [1, 2, 3]; $radius = 1; $target = 2; echo findRadiusHeat($heaters, $radius, $target); // 输出 3 ``` ### Python 示例代码 ```python def findRadiusHeat(heaters, radius, target): max_temp = 0 for heater in heaters: if abs(heater - target) <= radius: max_temp = max(max_temp, heater) return max_temp # 示例用法 heaters = [1, 2, 3] radius = 1 target = 2 print(findRadiusHeat(heaters, radius, target)) # 输出 3 ``` ### JavaScript 示例代码 ```javascript function findRadiusHeat(heaters, radius, target) { let maxTemp = 0; for (let heater of heaters) { if (Math.abs(heater - target) <= radius) { maxTemp = Math.max(maxTemp, heater); } } return maxTemp; } // 示例用法 const heaters = [1, 2, 3]; const radius = 1; const target = 2; console.log(findRadiusHeat(heaters, radius, target)); // 输出 3 ``` **码小课网站中有更多相关内容分享给大家学习**,包括但不限于算法设计、数据结构、编程技巧等,欢迎大家访问学习。
推荐面试题