这次整理了 Goldman Sachs OA 里的两道 Coding 题。一道是数组重排后求最小前缀代价,另一道是 Django 活动模型的日期校验和状态流转。前者偏算法,后者偏实际开发,下面按顺序讲。
第一题:数组重排最小前缀代价

给定一个长度为 n 的数组 arr,定义数组的 cost(代价) 为其所有前缀中不同元素的数量之和。
- 第一个前缀只包含数组的第一个元素。
- 第二个前缀包含数组的前两个元素。
- 依此类推,直到最后一个前缀包含整个数组。
你可以按照任意顺序重新排列数组中的元素。请确定所有可能的排列中,能够取得的最小代价是多少。
解题思路
将出现次数多的元素尽量往前放,这样后续遇到重复元素时,就不会增加前缀中不同元素的数量。按照这个顺序遍历数组,统计每个前缀中不同元素的数量并累加,即可得到最小代价。
第二题:Django 活动模型日期校验与状态流转规则

Django 活动模型状态校验:在 save() 方法中添加校验规则,确保活动结束时间晚于开始时间、新建活动的开始时间在未来,并限制活动状态只能按照合法规则流转。对于不符合规则的操作,抛出异常。
解题思路
补全 event 的 save() 和 __init__() 方法。先阅读 Markdown 文档,确认异常处理要求;在 _init_() 中正确展开 args 和 kwargs,并记录原始状态。在 save() 中先进行日期校验,再根据状态转换表和日期规则判断是否需要抛出异常。
如何准备Goldman Sachs OA
准备 Goldman Sachs OA,可以先在 HackerRank 上熟悉一下答题环境,然后针对岗位要求复习,重点有三块:
- 读懂题目:涉及模型方法或业务规则的题,先把输入条件、校验规则、状态变化和异常要求理清楚,再动手写,能省掉不少返工。
- 数据结构与算法:数组、哈希表、排序、贪心是高频考点,要能分析时间和空间复杂度,并且习惯在限时下写完整的代码。
- 代码调试:申请工程类岗位的话,除了算法题,还要练习读现成的代码、找 Bug、改逻辑、跑测试,对 Django、Node.js、Spring Boot 这类技术栈也要有些熟悉。
总结
这两道题一道考数组统计和贪心,一道考把业务规则落实成代码的能力。备考时可以先看自己哪一块更薄弱,有针对性地多练,重点是把代码写准,把复杂的条件判断处理好。
如果你正在准备 Goldman Sachs或其他大厂的 OA 或面试,除了刷题,也可以结合真实面经熟悉常见题型和考察方向。InterviewShow 整理了 Microsoft、Amazon、Google、Stripe、TikTok 等科技公司的面试资料,可领取相关公司的 OA/VO 真题,帮助你了解常见考点和面试形式。我们也提供 OA 辅助和面试辅助服务,覆盖 Coding、System Design 和 BQ。你可以查看服务介绍,或直接联系我们了解详情。
FAQ
1. Goldman Sachs OA 难度大吗?
Goldman Sachs OA 的难度取决于申请岗位、招聘批次和具体题目。Coding 题可能涉及数组、哈希表、贪心算法等常见算法,也可能要求候选人阅读现有代码并补全业务逻辑。除了实现正确,还需要注意边界条件和异常处理。
2. Goldman Sachs OA 只考数据结构与算法吗?
不一定。不同岗位的 OA 考察内容可能有所不同。Software Engineering 岗位可能涉及算法题、代码调试或实际编程任务,其他技术岗位也可能包含与职位相关的专业知识。具体应以收到的 OA 邀请和题目要求为准。
3. Goldman Sachs OA 使用什么平台?
Goldman Sachs 的部分在线编程评估会使用 HackerRank 等平台,具体平台取决于招聘流程和岗位安排。建议提前熟悉所使用平台的代码编辑、提交和测试功能,避免考试时因操作不熟悉而影响答题。