Goldman Sachs OA 面经复盘|Log Buffer + Password Lock,两道又烧脑又上头的题

437次閱讀

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。
正文完