每年一到暑期实习招聘季,Goldman Sachs的 Summer Analyst Program 都是无数 CS / DS / Quant 专业学生的 dream offer。
不只是因为大厂光环,更多是因为——项目 exposure 大, 转正率高, 校招外跳好跳。也正因如此,GS 的 OA 竞争超激烈,很多人提前几个月就开始刷题、找人 mock。
下面是我们 Programhelp 协助的一位同学完整 OA 过程拆解,含题型回忆、实战技巧和我们远程无痕联机协助细节,希望能帮你高效准备!

OA 流程 & 题型总览
项目 | 说明 |
---|---|
平台 | HackerRank |
总时长 | 90 分钟左右 |
题目数 | 2~3 道编程题 + 2 道数学/逻辑题 |
语言限制 | Java / Python / C++ / JS 等常见语言均可 |
题型分布 | 数组 + 字符串处理、图论变形、逻辑推理题 |
Problem 1: Find the Damaged Toy
Problem
At a birthday party, N kids (numbered from 1 to N) are sitting in a circle. The host has T toys and starts distributing them one at a time, beginning with the kid with ID D, and continuing clockwise. After reaching kid N, the count wraps around to kid 1.
You are to find out which kid will get the last (damaged) toy.
Input
N
: Total number of kidsT
: Number of toysD
: Starting ID of the kid
Output
The ID of the kid who receives the last toy (damaged one).
Example
Input: N = 5, T = 2, D = 1
Output: 2
Explanation
- First toy → Kid 1
- Second toy → Kid 2 (this is the damaged one)
Problem 2: Encode or Decode Message
Problem
You are given a message (string) and a key (positive integer). Your task is to either encode or decode the message based on a given operation type:
- 1 = Encode: For each character, repeat it
key[i]
times (cyclically). - 2 = Decode: Compress repeated characters based on the digits of the key (cyclically). If the pattern doesn’t match the key, return
-1
.
Input
- Operation type:
1
(Encode) or2
(Decode) - Message (string)
- Key (positive integer)
Output
Transformed string, or -1
for invalid decoding.
Examples
Input: operation = 1, message = "Open", key = 123
Output: "Oppeen"
Input: operation = 2, message = "Oppeen", key = 123
Output: "Open"
Notes
- If the key is shorter than the message, repeat the key cyclically.
- For decoding, if the actual repeats don’t match the expected key digits, return
-1
.
Problem 3: Minimum Moves in a Maze
Problem
There is an n × m
maze (grid), where:
0
= Empty cell1
= Obstacle
You are at (0, 0)
and want to reach (n − 1, m − 1)
. You can move in four directions (up, down, left, right), and in one move, jump 1 to k steps in that direction only if all the jumped-over cells are 0.
Function Signature
def getMinimumMoves(maze: List[List[int]], k: int) -> int
Output
Return the minimum number of moves needed to reach the end, or -1
if impossible.
Examples
Input: maze = [[0,1],[1,0]], k = 2
Output: 2
Input: maze = [[0,0,0],[1,0,0],[1,0,0]], k = 5
Output: 2
Input: maze = [[0,1,0],[1,0,0],[1,0,0]], k = 5
Output: -1
Constraints
1 ≤ n, m ≤ 100
1 ≤ k ≤ 100
- Maze contains only
0
or1
总结建议 + 白嫖技巧
准备建议
- 刷题方向明确:GS 偏好考细节处理能力,建议重点练 LeetCode 高频中等题 + 数学/逻辑题;
- 口头表达不能少:OA 虽然不是 VO,但 HackerRank 有录屏 + 麦克风监控,建议适当训练思路表达;
- 英文审题能力要练:部分题干文字不简洁,建议考前多刷“语义不清”的 LeetCode 英文原题。
Programhelp 实力护航|从 OA 到终面,我们全程陪跑
Goldman Sachs 的 OA 不仅考察你对算法和逻辑的理解,更强调时间管理和多题并行思维的能力。很多同学明明刷了很多题,到了正式考试还是紧张到脑袋一片空白。而这,正是 Programhelp 能帮上大忙的地方。
我们不只是单纯讲题——而是在你面对高压 OA 或线上面试时,用无痕远程协助 + 实时语音提醒,真正解决“做不出来”或“没时间做完”的难题。
联机编程实时协作
语音引导题意 + 提示思路
多语言支持,涵盖 Python / Java / C++ 等主流语言
多平台熟练操作,包括 HackerRank、Codility、CodeSignal、Karat 等
我们已经帮助超过 3000 位同学顺利通关 OA,斩获包括 Goldman Sachs、JP Morgan、Citadel、Two Sigma 在内的 offer。如果你也在准备投行或科技公司的笔试,欢迎私信我们了解详细服务方案。