Goldman Sachs的 OA 我真的做過不少次了,每次都有點“平靜外表下的小心機”。
這次 11.26 的 Goldman Sachs 26NG SDE OA ,整體還是那種:題目不嚇人,但寫得不夠乾淨就真的會翻車。
整套是:2 道程式設計,8 道選擇題,選擇題有點 tricky,但可控;真正拉開差距的是兩題 coding。
Coding Question 1
Q1: Sliding Window Log Transmission Counter
Given a stream of log events, each event has a timestamp and a tag.
You need to calculate for each new log event how many previous events with the same tag fall within a fixed sliding time window.
The window size is W.
Return the total accumulated transmission count across all logs.
Old events falling out of the window should be removed efficiently.
思路解析
這個題完全是看你能不能快速搭出**“滑動視窗 + 多標籤佇列”**的結構。
如果你寫成暴力掃描陣列,高盛直接讓你 TLE。
最穩定的架構是:
- 一個全域性佇列(global queue)
- 用來記錄所有日誌的時間順序
- 方便 O(1) 移除超時事件
- 一個字典:
tag → deque- 只維護相同標籤的 timestamp
- 避免掃描整個歷史列表
- 對每條日誌
(t, tag):- 從該 tag 的佇列中移除
t - W以前的 timestamps - 佇列剩下的長度就是“視窗內同標籤次數”
- 加到最終結果
- 把當前 timestamp 放進去
- 從該 tag 的佇列中移除
這種結構屬於“工程感非常強”的解法,也是高盛風格的最優答案。
Coding Question 2
Q2: Maximize Lock Value Based on GCD Rules
You are given an integer array
aand an integerm.
Find an integert(within a valid range related tom) that maximizes a custom lock value defined by the following rules:
For each elementaiin the array, computegcd(t, ai).
Ifgcd(t, ai) != 1, it contributes to the score.
Special conditions apply when all gcd values equal 1, or whentalready appears ina.
Return the maximum achievable lock value.
思路解析
雖然看起來像“偽系統設計題”,但本質就是:
數學模擬 + 合理列舉 + gcd 判斷 + 處理邊界條件。
穩妥寫法如下:
✓ 列舉範圍
t 的有效範圍是:
t ∈ [max(1, m - n), m]
這是為了避免毫無意義的 t 影響複雜度。
✓ 對每個 t:
- 遍歷陣列
agcd(t, ai) != 1→ 計入貢獻
- 如果所有 gcd = 1 → 按題目規則處理(通常是鎖值清零或給基礎值)
- 如果 t 在 a 中 → 要額外加/減 score(按原題要求)
- 更新最大鎖值
✓ 難點在哪裡?
- gcd 全為 1 的特殊情況容易漏
- t 在陣列裡怎麼處理不容易記
- 列舉區間如果寫錯,會直接 TLE 或 WA
但總體難度:
結構簡單,但細節密集。
整體體驗:這套高盛 OA 就是“細節戰”
做下來我最大的感受:
① 它不考花活,但極度重視程式碼結構
第一題寫得亂的人基本穩掛。
滑動視窗、佇列、字典這幾個元素必須在心裡組合好。
② 對數學直覺要求意外地高
第二題其實可以寫爆,但只要你 gcd 和列舉範圍想清楚,難度會立刻掉一個等級。
③ 選擇題比多數銀行更硬一點
它不是送分型,會有機率、邏輯、陣列複雜度推斷這種混合題。
整體難度不至於勸退,但確實是“沒有準備就容易栽的那種”。
想穩過高盛 / 摩根 / 亞麻這類 OA?
這次帶學員過高盛 OA,最大的感受還是——能寫、寫得快、寫得穩,才是贏點。
但大多數同學卡的不是知識點,而是現場節奏、突然腦子一空、或者邊界條件 patch 爆炸。
這也是 Programhelp 最常解決的問題。
我們提供的不是那種“暴力上機”,而是:
- 全程無痕聯機協助(ToDesk/語音提示雙路線)
- 現場幫你把解題思路拉直,不用慌、不用亂補邏輯
- 程式碼結構當場最佳化,減少低階 bug
- 複雜題給“關鍵一眼提示”,保證你不在分支裡迷路
- 所有測試用例跑不通 = 不收費
如果你最近也在準備銀行 / quant / 大廠 OA,不想把時間浪費在反覆踩坑上,可以隨時來問。我們已經陪跑過上千次 OA,會告訴你什麼地方該衝、什麼地方該穩、什麼地方該直接 skip 才是高效策略。