Goldman Sachs OA 面經複盤|Log Buffer + Password Lock,兩道又燒腦又上頭的題

438Views

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

Goldman Sachs OA 面經複盤|Log Buffer + Password Lock,兩道又燒腦又上頭的題

面試概覽|Goldman Sachs OA 整體流程與難度總結

這次的 Goldman Sachs OA 整體體驗可以用三個字來概括:節奏快、思維深、細節多
雖然只有兩題,但都不屬於“模板題”,更像是把演算法、實作和思考推理融合在一起的小型系統題。

測試流程

  • 平臺:HackerRank
  • 時長:約 90 分鐘(兩題)
  • 語言限制:任選 Python / C++ / Java
  • 難度:中上(更像硬派邏輯題,不偏重數學計算)

一般來說,Goldman 的 OA 會檢視三方面:

  1. 資料結構與實作能力:看你是否能靈活選擇合適結構(佇列、雜湊、排序表等);
  2. 演算法與複雜度控制:題量不大,但都要求在時間範圍內高效實現;
  3. 邏輯與邊界思維:尤其是要考慮資料流更新、同步刪除、範圍統計等細節。

這次兩題的風格非常典型:

  • 第一題 Log Buffer Analyzer 是偏 系統實作+ 資料結構協同
  • 第二題 Password Lock Decryption 是偏 數論+ 思維優化

第一題:Log Buffer Analyzer

Problem:
Implement a circular log buffer that stores logs with timestamps and tags.

每次有新日誌進來時:

  1. 如果 buffer 滿了,先刪掉最舊的一條;
  2. 然後立刻「發送」所有同標籤、且在指定時間範圍內的日誌;
  3. 最後算出整個過程中總共發送了多少條。

思路

这题表面像实现题,其实考你数据结构组合的熟练度。
我當時的做法是:

  • 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」。
部分年份也有使用 CodilityCodeSignal 的情況,但題型風格基本一致:偏邏輯+ 實現,不是刷模板就能秒的類型。

💬 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 輔助方式:

  1. 實時語音助攻:你自己動手寫,我們即時語音提醒邏輯點(如二分邊界、gcd 剪枝)。
  2. 遠端無痕聯機協助:透過 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 / 面試,可以直接聯絡我們。
穩穩過關,不靠運氣。讓專業的人幫你搞定最難的環節。

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