Goldman Sachs OA 一直有點「不走尋常路」。不像其他金融公司那種偏數理推導或 SQL case,它出的題反而更像演算法競賽──邏輯清晰、實現要求高,還帶點工程味。這次我遇到的兩題,一個偏資料結構、一個偏數論優化,思路都挺巧,屬於那種「做完之後還會想半天」的類型。

面試概覽|Goldman Sachs OA 整體流程與難度總結
這次的 Goldman Sachs OA 整體體驗可以用三個字來概括:節奏快、思維深、細節多。
雖然只有兩題,但都不屬於“模板題”,更像是把演算法、實作和思考推理融合在一起的小型系統題。
測試流程
- 平臺:HackerRank
- 時長:約 90 分鐘(兩題)
- 語言限制:任選 Python / C++ / Java
- 難度:中上(更像硬派邏輯題,不偏重數學計算)
一般來說,Goldman 的 OA 會檢視三方面:
- 資料結構與實作能力:看你是否能靈活選擇合適結構(佇列、雜湊、排序表等);
- 演算法與複雜度控制:題量不大,但都要求在時間範圍內高效實現;
- 邏輯與邊界思維:尤其是要考慮資料流更新、同步刪除、範圍統計等細節。
這次兩題的風格非常典型:
- 第一題 Log Buffer Analyzer 是偏 系統實作+ 資料結構協同;
- 第二題 Password Lock Decryption 是偏 數論+ 思維優化。
第一題:Log Buffer Analyzer
Problem:
Implement a circular log buffer that stores logs with timestamps and tags.
每次有新日誌進來時:
- 如果 buffer 滿了,先刪掉最舊的一條;
- 然後立刻「發送」所有同標籤、且在指定時間範圍內的日誌;
- 最後算出整個過程中總共發送了多少條。
思路
这题表面像实现题,其实考你数据结构组合的熟练度。
我當時的做法是:
- 用 queue 維護日誌順序,保證能快速刪掉最舊的;
- 给每个 tag 建一个 sorted list 存时间戳;
- 新日誌插入時,用 binary search 尋找「時間範圍內」的同標籤日誌數量並加到結果裡;
- 若 buffer 滿,就同步刪掉隊首日誌和它的時間戳記記錄。
其實挺像系統設計中那種「串流日誌+ 時間視窗」處理題,重點在於同步更新和邊界控制。
思路對了之後,整個流程可以穩定在 O(log n) 級別,非常絲滑。
第二題:Password Lock Decryption
Problem:
Given an integer array and a maximum upper bound,
you can spend 1 unit of cost to change any element to a number ≤ upper bound.
Find a candidate number that is coprime with all elements after modification.
Define:
Lock Code = candidate_number − total_modification_cost
Goal: maximize the Lock Code.
思路
這題其實挺有意思,看著像腦筋急轉彎,但本質是數論+ 枚舉+ gcd 優化。
- 從最大上限開始往下枚舉 candidate;
- 對每個 candidate,計算它與數組中每個數的 gcd;
- 如果 gcd > 1,就得花 1 改這個數;
- 然後計算 lock code = candidate − 修改代價;
- 最後取最大值。
這題的難點在於:
有時候高 candidate 雖然大,但要改的數也多,反而不划算。
所以要在「值大」和「修改代價低」之間找平衡。
Goldman Sachs OA 常见问题 FAQ
整理了一些同學在準備 Goldman Sachs OA 時最常問的問題,希望能幫你提早避坑、少走彎路。
💬 Q1:Goldman Sachs 的 OA 一般在什么平台上进行?
通常在 HackerRank 平台上進行,形式是兩道程式設計題。
每題會有多個 hidden test cases,要通過所有測驗才能算「AC」。
部分年份也有使用 Codility 或 CodeSignal 的情況,但題型風格基本一致:偏邏輯+ 實現,不是刷模板就能秒的類型。
💬 Q2:OA 難度大概是什麼水準?
整體屬於 中上偏難。
不是那種單純資料結構 hard,而是邏輯設計複雜、邊界多。
Goldman 的題目普遍很「乾淨」:
- 題面不繞彎;
- 但需要你把多個結構組合起來解決問題。
例如這次的 Log Buffer Analyzer,其實就是佇列+ 二分查找+ 雜湊表的綜合考法;
Password Lock Decryption 則要用到 gcd、剪枝和數論思維。
💬 Q3:Python 能用嗎?會不會超時?
可以用,但要寫得夠有效率。
Python 在 HackerRank 上跑的時間上限比較寬鬆,只要不出現 O(n^2) 的暴力操作,一般没问题。
建議使用 bisect 模組、collections.deque 等內建結構,能顯著提速。
如果你更熟悉 Java 或 C++,那麼在高盛 OA 的效能會更穩定。
💬 Q4:考察重點是演算法還是實現?
兩者都有。
Goldman Sachs 的 OA 更偏向「工程思維+ 演算法邏輯結合」。
簡單來說:
- 你不需要背模板;
- 但必須能寫出流暢、可擴展的邏輯。
他們更想看到你能否在有限時間內,建立一個「合理且有效率的系統」——而不是暴力堆程式碼。
💬 Q5:題目是固定的嗎?
不是固定,但變化不大。
常見的題型包括:
- 串流資料處理(Log/Buffer/Queue)
- 數論與優化(gcd、枚舉、最小代價)
- 模擬+ 資料結構綜合題
每年會有輕微變動,但核心思路差不多。
Programhelp 社群整理了近三年的真題題庫,可以對照練習。
💬 Q6:部分測試不過怎麼辦?
如果測試沒全過,不要慌。
HackerRank 的系統只顯示 visible test cases,hidden 的不通過一般是:
- 邊界處理不全(例如刪隊首後沒同步更新 tag map);
- 時間複雜度略高(忘了加剪枝或二分);
- 小數/ 時間範圍計算時 off by one。
可以重新 submit(一般 2 次機會),或是聯絡 recruiter 說明情況,重新發送測試連結。
💬 Q7:OA 通過後多久會收到面試邀約?
通常 3~10 天內會收到。
Goldman 的招募流程偏集中批次處理,所以可能需要等一段時間。
OA 通過後基本會進入 Technical Phone Interview 階段。
💬 Q8:Programhelp 的助攻是怎麼操作的?
Programhelp 提供兩種 OA 輔助方式:
- 實時語音助攻:你自己動手寫,我們即時語音提醒邏輯點(如二分邊界、gcd 剪枝)。
- 遠端無痕聯機協助:透過 ToDesk 安全接入,幫你穩過所有 test cases,不透過不收費。
整個流程無痕、安全,相容於 HackerRank / Codility / CodeSignal 等主流平台。
許多同學在 Goldman OA 中使用這個服務,能節省大量 debug 時間,也能穩穩通過 hidden cases。
想拿下 Goldman Sachs OA?別自己硬扛!
我們在 Programhelp 已經幫過上百位同學穩穩透過 Goldman Sachs、JP Morgan、Morgan Stanley 等頂級投行的 OA。
無論是即時語音助攻提醒、遠距安全線上代寫,或是模擬面試還原題型訓練,都有成熟的流程與安全機制。
我們提供的服務包括:
OA 全程輔助:HackerRank / CodeSignal / Codility 平台無痕幫助,通過率超高;
語音即時提醒系統:在你做題目時後台即時提示關鍵點,不打擾、不留痕;
題型複盤+ 答案邏輯解說:幫你快速吃透 Goldman OA 常見題型;
模擬面試訓練營:覆蓋資料結構、演算法、數論、系統設計全模組。
如果你最近也在準備 Goldman 或其他金融類大廠的 OA / 面試,可以直接聯絡我們。
穩穩過關,不靠運氣。讓專業的人幫你搞定最難的環節。