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 / 面试,可以直接联系我们。
稳稳过关,不靠运气。让专业的人帮你搞定最难的环节。