当前位置: 面试刷题>> 飞机数 (经典算法题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 ``` **码小课网站分享**: 码小课网站中涵盖了丰富的编程学习资源和实战项目,包括算法题解、数据结构、编程语言进阶等内容,适合各个水平的开发者学习和提升。通过参与课程、阅读文章、完成练习,你可以逐步提高自己的编程能力和解决实际问题的能力。
推荐面试题