这次来分享一套10月6日最新出的 OpenAI OA 真题,出现在 HackerRank 平台。整场 OA 一共两道编程题,整体难度在 Medium ~ Hard 之间,第一题是树上路径优化题,第二题则偏向图搜索 + 状态压缩。
第一题:Optimal Path
题目描述
A distributed system of servers is represented as a tree with tree_nodes nodes, numbered from 1 to tree_nodes. Moving between directly connected servers takes 1 unit of time.
A process needs to:
- Start at the
start_nodeserver. - Complete tasks at servers listed in an array
task_nodes[]of sizenum_tasks(by visiting them in any order). - End at the
end_nodeserver.
Find the minimum time required to complete all tasks and reach end_node.
Edges are bidirectional.
Constraints:
2 ≤ tree_nodes ≤ 2×10^5
1 ≤ num_tasks ≤ tree_nodes
1 ≤ start_node, end_node, task_nodes[i] ≤ tree_nodes
示例输入输出
tree_nodes = 5
tree_from = [3, 2, 4, 1]
tree_to = [2, 5, 3, 2]
start_node = 1
end_node = 5
task_nodes = [4, 2]
输出:
6
解释:
最优路径为 2 -> 3 -> 1(在树的映射下等价于访问任务节点后返回主路径),
总共花费 6 个单位时间。
思路讲解
这题属于「树上最短路径 + 必经点集合最短路」的组合问题。
关键思路是:
- 任务节点顺序任意,所以可以先把需要访问的必要节点集合找出来。
- 这些节点包括:
- 所有 task_nodes
- start_node 和 end_node
- 以及它们在树上的最小公共祖先路径上的节点
然后我们只需要在树上计算出这些节点所覆盖的最小连通子树(也就是所谓的 “Steiner Tree”),
再用 DFS 或 BFS 求出总的路径长度。
关键结论
在树上访问所有任务节点并从起点到终点的最短路径长度为:
2 * (sum of edges in minimal subtree) - distance(start_node, end_node)
解释如下:
- 每条边需要经过两次(去 + 回),但 start → end 路径上那部分不需要回头;
- 所以减掉一次 start 到 end 的距离。
第二题:Minimum Operations to Reach Target
题目描述
You are given a starting integer start, a target integer target, and an integer array operations[].
In each step, you can move from your current position x to (x + op) % 100000, where op is any element from the array operations.
Return the minimum number of operations required to reach target from start.
If it is impossible to reach target, return -1.
示例
start = 3
target = 30
operations = [2, 5, 7]
输出:
6
解释:
一种最优路径为:
3 → 5 → 10 → 15 → 22 → 24 → 30
共 6 步。
思路拆解
这题看起来简单,实则是典型的 图上 BFS 状态搜索。
每个数字(0~99999)看成一个节点,
从节点 x 可以通过加上任意 op(再对 100000 取模)跳到新的节点。
目标就是从 start 到 target 的最短步数 ——
无权图最短路径 → BFS 模板题。
OpenAI OA 难度总结
| 题号 | 类型 | 难度 | 考点 |
|---|---|---|---|
| Q1 | 树上路径优化(Optimal Path) | Hard | 树、最小子树、路径优化 |
| Q2 | 图状态搜索(Modulo Graph BFS) | Medium | BFS、模运算、图遍历 |
最近我们 Programhelp 已经成功帮多位同学顺利通过 OpenAI OA 和其他大厂笔试。
不同于普通刷题,我们提供的是实战级远程助攻体验:
- 无痕联机助攻:在 HackerRank / Codility / Codesignal 等平台实时联机,确保代码逻辑与测试用例全部通过;
- 算法思路梳理:提前针对题型(如树上路径优化、状态图 BFS)做 Mock 训练,考试时不慌乱;
- 实时语音提醒:做题卡住时可即时提示关键思路,让你在限时环境中高效输出;
如果你也在准备 OpenAI、Anthropic、DeepMind 或其他顶级科技公司 OA / 面试,
Programhelp 的远程助攻服务能让你稳稳拿下大厂笔试与面试,不再孤军奋战。