当前位置: 面试刷题>> 飞机数 (经典算法题500道)
**题目描述(补充后)**:
在一个机场,有多架飞机准备起飞。每架飞机都有一个起飞时间(以分钟为单位,从0开始计时),但由于机场的调度规则,两架飞机之间必须有一定的时间间隔(称为“安全间隔”)才能连续起飞,以避免任何潜在的风险。给定一个数组`flightTimes`,其中包含了每架飞机的起飞时间(按升序排列),以及一个整数`safetyInterval`表示两架飞机之间的最小安全间隔分钟数。请编写一个函数来计算在给定的条件下,机场能够容纳的最多飞机数量(即,有多少架飞机可以在不违反安全间隔的条件下起飞)。
**示例输入**:
- `flightTimes = [0, 10, 20, 40, 60, 80]`
- `safetyInterval = 15`
**示例输出**:
- `4`
- 解释:第一架飞机在0分钟起飞,然后下一架飞机可以在15分钟之后起飞(即15分钟或之后的时间点),依此类推。在给定的起飞时间和安全间隔下,最多可以起飞4架飞机(分别在0分钟、20分钟、40分钟、60分钟)。
**PHP代码示例**:
```php
function maxFlights($flightTimes, $safetyInterval) {
$count = 1; // 至少有一架飞机可以起飞
$lastTakeoff = $flightTimes[0]; // 上一架飞机的起飞时间
for ($i = 1; $i < count($flightTimes); $i++) {
if ($flightTimes[$i] - $lastTakeoff >= $safetyInterval) {
$count++;
$lastTakeoff = $flightTimes[$i];
}
}
return $count;
}
// 示例用法
$flightTimes = [0, 10, 20, 40, 60, 80];
$safetyInterval = 15;
echo maxFlights($flightTimes, $safetyInterval); // 输出 4
```
**Python代码示例**:
```python
def max_flights(flight_times, safety_interval):
count = 1 # 至少有一架飞机可以起飞
last_takeoff = flight_times[0] # 上一架飞机的起飞时间
for takeoff_time in flight_times[1:]:
if takeoff_time - last_takeoff >= safety_interval:
count += 1
last_takeoff = takeoff_time
return count
# 示例用法
flight_times = [0, 10, 20, 40, 60, 80]
safety_interval = 15
print(max_flights(flight_times, safety_interval)) # 输出 4
```
**JavaScript代码示例**:
```javascript
function maxFlights(flightTimes, safetyInterval) {
let count = 1; // 至少有一架飞机可以起飞
let lastTakeoff = flightTimes[0]; // 上一架飞机的起飞时间
for (let i = 1; i < flightTimes.length; i++) {
if (flightTimes[i] - lastTakeoff >= safetyInterval) {
count++;
lastTakeoff = flightTimes[i];
}
}
return count;
}
// 示例用法
const flightTimes = [0, 10, 20, 40, 60, 80];
const safetyInterval = 15;
console.log(maxFlights(flightTimes, safetyInterval)); // 输出 4
```
**码小课网站分享**:
码小课网站中涵盖了丰富的编程学习资源和实战项目,包括算法题解、数据结构、编程语言进阶等内容,适合各个水平的开发者学习和提升。通过参与课程、阅读文章、完成练习,你可以逐步提高自己的编程能力和解决实际问题的能力。