当前位置: 面试刷题>> 加热器 (经典算法题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
```
**码小课网站中有更多相关内容分享给大家学习**,包括但不限于算法设计、数据结构、编程技巧等,欢迎大家访问学习。