這次來分享一套 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 的遠端助攻服務能讓你穩穩拿下大廠筆試與面試,不再孤軍奮戰。