OpenAI OA 高頻真題分享|最新中等難度Coding題詳解

最近有不少同學在問 OpenAI OA 難度到底怎麼樣,這裡統一分享一下。整體來說,OpenAI 的 OA 通常是兩道 coding 題,時長給得相對合理,難度基本在 medium 左右。下面整理了一些高頻真題,給大家做個參考。

OpenAI OA 高頻真題獨家整理

最大相交區間組 (11.6 openai OA)

largest subset

尋找最大的區間集合,其中存在一個特定區間與集合內所有其他區間相交。

思路:問題轉化對每個區間,計算能與其相交的區間數量,關鍵觀察兩個區間不相交的充要條件如一個區間的右端點小於另一個的左端點,高效計算透過排序和二分查詢快速排除不可能相交的區間,演算法選擇:將區間按左右端點分別排序,利用二分查詢確定不相交區間數目 複雜度分析 排序複雜度 O(n log n),每次查詢 O(log n),總體 O(n log n)。

最小移動次數 (11.6 openai OA)

grouping marbles

將編號1~n的球分佈在A、B、C三組中,透過移動操作使最終三組按順序拼接後形成嚴格遞增序列1,2,3,…,n,求最小移動次數。

思路: 問題轉化最小移動次數等價於最大化已正確放置的球數,關鍵觀察正確序列要求A組包含1~p,B組包含p+1~q,C組包含q+1~n 高效解法列舉分割點p和q,利用前字尾和快速計算各組中已正確放置的球數,數學表達最小移動次數 = n – max(各組正確球數之和) 演算法複雜度 預處理後可在O(n)時間內完成所有分割點列舉。

Marble Group Reordering (2.21 openai oa)

有 n 個編號 1 到 n 的彈珠,初始分佈在 A、B、C 三個組中。每次操作可以把一個彈珠從當前組移動到另外任意一個組。目標是:將三個組分別排序後按 A + B + C 的順序拼接,最終結果恰好是 1 到 n 的升序。問最少需要多少次移動。三個組最後可以為空,大小不做限制。

思路:這題本質是列舉兩個分界點,把 1 到 n 劃分成三個連續區間,分別對應 A、B、C 三組。對於每種劃分方式,統計當前已經在“正確區間對應組”裡的彈珠數量,這些可以保留不動,其餘都需要移動。答案就是 n 減去最多可保留的數量。核心不是模擬移動,而是最大化保留元素數。

Wind and Falling Leaves Simulation (2.21 openai oa)

給定一個 height × width 的網格,每個格子裡有若干樹葉。再給一個風向字串,每個字元表示一次風(U / D / L / R)。每次風會把所有樹葉整體往指定方向移動一格,移出邊界的樹葉會消失。問所有風結束後,還剩多少樹葉。

思路:按風向字串逐次模擬。每來一次風,就新建一個空網格,把當前網格的樹葉整體往對應方向平移一格,越界的直接丟棄。重複直到所有風處理完,最後統計網格中剩餘樹葉總數即可。實現時注意方向和邊界判斷別寫錯。

衝刺 OpenAI OA

整體來說,OpenAI 的 OA 不算刁鑽,但也絕對不是送分。真正拉開差距的往往是細節處理和 coding 穩定性。時間分配、邊界條件、複雜度控制,這些都要提前練熟,不然很容易在本來會做的題上丟分。 如果你正在準備 OpenAI 或其他大廠 OA,們這邊長期整理各大廠最新 OA 真題方向,也有實戰節奏模擬和針對性OA輔助 。準備充分一點,臨場就會穩很多,機會從來不是拼運氣,而是拼準備程度。

author avatar
Jory Wang Amazon資深軟體開發工程師
Amazon 資深工程師,專注 基礎設施核心系統研發,在系統可擴充套件性、可靠性及成本最佳化方面具備豐富實戰經驗。 目前聚焦 FAANG SDE 面試輔導,一年內助力 30+ 位候選人成功斬獲 L5 / L6 Offer。
END
 0