华为OD机试-流浪地球(Java 2024 E卷 100分)
题目描述
在赤道上均匀部署了 N 个转向发动力,编号为 0 到 N-1。发动机的启动方式分为“手动启动”和“关联启动”。手动启动的发动机会在下一时刻启动其相邻的两个发动机。给定手动启动的发动机及其启动时间,求最后被启动的发动机及其位置编号。
示例
输入:
5 2
1 2
2 0
输出:
2
1 3
解题思路
我们可以使用广度优先搜索(BFS)来模拟发动机的启动过程。具体步骤如下:
- 初始化一个数组来记录每个发动机的启动时间。
- 将所有手动启动的发动机及其启动时间加入队列。
- 对于队列中的每个发动机,检查其相邻的发动机,如果未被启动,则在下一时刻启动它们。
- 最后找出启动时间最大的发动机。
代码实现
Java
import java