OpenAI OA 最新真題復盤 | HackerRank 兩題詳解 + 思路解析

這次來分享一套 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_node server.
  • Complete tasks at servers listed in an array task_nodes[] of size num_tasks (by visiting them in any order).
  • End at the end_node server.

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 取模)跳到新的節點。

目標就是從 starttarget 的最短步數 ——
無權圖最短路徑 → 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 的遠端助攻服務能讓你穩穩拿下大廠筆試與面試,不再孤軍奮戰。

author avatar
jor jor
END
 0