华为OD机试真题 新系统 2026-07-08 PythonJS 实现【迷宫相遇】
📅 2026/7/12 18:43:42
👁️ 阅读次数
📝 编程学习
目录
题目
思路
Code
题目
题目内容:
一个封闭迷宫有 n 个房间,编号为 0 到 n-1,相邻房间由双向门连接。
玩家 A 可以自由移动,玩家 B 沿给定路径来回巡逻。
请为玩家 A 选择最优移动策略,使 A 和 B 在最少回合后相遇。
注意:A 和 B 初始出发点不同。
规则:
每回合,A 可以移动到相邻房间,也可以停留在当前房间。
B 按给定路径循环移动:从起点开始,每回合移动到路径下一个位置;到达路径末端后折返,回到起点后再折返,如此循环往复。
B 在端点处不额外停留。例如单程路径 [0,1,2],B 的完整位置序列为 [0,1,2,1,0,1,2,1,...]。
A 和 B 在某回合结束后位于同一房间,视为相遇。
输入描述:
输入为一行字符串,格式为:
n,edges,startA,patrolPath
n 表示房间数量,1 < n < 100。
edges 表示房间连接关系,是 int 型二维数组,例如 [[0,1],[1,2],[2,3],[3,4]],表示双向连通;空数组 [] 表示没有连接。
startA 表示 A 的初始房间编号。
patrolPath 表示 B 的巡逻路径,即一次单程路径,例如 [0,1,2] 表示 B 从 0 出发,经过 1 到达 2,然后原路返回。patrolPath 至少包含一个元素,只有一个元素时表示 B 原地不动。
输出描
编程学习
技术分享
实战经验