深度复盘|HRT OA 2026 最新考情:CodeSignal 70min 极限 4 题全解

1,078次閱讀

分享最近带学员走的一套 HRT OA 。这位同学是今年冲击 quant / trading firm 的候选人,之前刷过不少 CodeSignal 的大厂 OA(Citadel、Optiver 那类),对常见的数组、模拟题都比较熟悉。这次碰到 HRT 的 OA,整体还是偏熟悉的题型。

这套 OA 一共 70 分钟 4 题,难度分布比较均衡。我这位同学 25 分钟就全 AC 了,剩下时间用来检查 edge case。顺便提一句,HRT 还有另外一个版本:150 分钟 3 题,其中第三题会有两个 level,第二个要在第一个的基础上继续写,相对更耗时。

深度复盘|HRT OA 2026 最新考情:CodeSignal 70min 极限 4 题全解

Hudson River Trading 独家真题分享

Problem 1: Build Obstacles and Check Blocks on Number Line

Task: Implement code to support two operations on an infinite integer number line for building obstacles and checking block feasibility.

Operation Types:

[1, x]: Build an obstacle at coordinate x.

[2, x, size]: Check if a block centered at x (extending size - 1 each way) can be built. Return "1" or "0".

Output: A binary string of all results.

👉 这题的难点在于要动态插入障碍点,还要快速判断区间里有没有障碍。暴力扫描不行,数据量大就超时。
常见解法是用 有序集合:

  • 插入障碍:set.add(x),O(log n)。
  • 查询 [x-(size-1), x+(size-1)]:在集合里二分找到 >= left 的障碍,如果它 ≤ right 就说明冲突。

Python 可以用 bisect,Java 用 TreeSet,C++ 用 set.lower_bound
边界要注意:size=1 时就是单点,可能正好有障碍;而且题目保证插入时位置没有障碍,但 check 时要小心溢出范围。

Problem 2: Find First Day to Reach Target Visits

Task: Given a visits array (daily website visitors), find the index i of the first day where cumulative visits reach or exceed target.

Rules: Return i if reached, else -1.

Complexity: No worse than O(n²).

👉 这题其实是送分题。思路就是前缀和:

sum = 0  
for i in range(n):  
    sum += visits[i]  
    if sum >= target: return i  

返回 i 即可。

容易错的地方:

如果 target 一开始 ≤ 0,要不要直接返回 0?一般题意下还是从 day 0 开始累计。

如果数组空,直接返回 -1。

还有个进阶思路:如果 target 有很多次查询,可以先做前缀和数组,然后二分搜索。但这场考试只问一次,直接 O(n) 就好。

Problem 3: Find Lexicographically Smallest String

Task: Perform all possible prefix or suffix reversals on word and return the lexicographically smallest result.

Rules: Reverse first k 或者 last k characters。

Complexity: No worse than O(n²).

👉 这题看起来有点 trick,但其实暴力就能过:

遍历所有前缀长度 k:word[:k][::-1] + word[k:]

遍历所有后缀长度 k:word[:-k] + word[-k:][::-1]

记录所有结果,取字典序最小。

复杂度 O(n²),题目给的限制就允许这么做。

容易错的地方:

忘记 k = n 的情况(整个字符串 reverse)。

Python 里直接用切片 reverse 最方便,C++ 就得写 reverse()

如果有多个结果字典序一样,随便返回其中一个就行。

Problem 4: Simulate Bubble – Popping Game

Task: 模拟一个泡泡消除游戏。点击一个 cell 时,消除该点及同色的 diagonal 邻居,之后空位要下落。

Rules:

点击空格没反应。

消除完成后,所有列执行重力下落。

Input: 初始 bubbles board + operations

Output: 操作完成后的最终 board(空格用 0 表示)。

👉 这是全场最复杂的一题,要同时做消除 + 重力下落。
做法:

消除部分:DFS 或 BFS,从点击点开始,只走对角线方向,遇到相同颜色的继续扩展,把这些点设为 0。

重力下落:对每列,从底部往上扫,把非 0 的数字压到底,再把剩余上方补 0。

容易错的地方:

点到空格子要跳过,不然会报错。

“同色 diagonal neighbors” 是 4 个对角方向,不包括上下左右。

重力一定要列为单位,不要一行一行处理。

整体复杂度大概 O(m × rows × cols),题目范围下足够。

从刷题到真场助攻,我们帮你少掉坑、多拿 Offer

这套 HRT OA 基本就是 CodeSignal 热门题型大杂烩,难度比纯算法题更偏模拟和细节。考场上一定要注意时间分配,别在最后一题卡死。

如果你也在准备 HRT / Citadel / Jane Street 这类 quant OA 或其他北美大厂面试,其实完全不用单打独斗。我们这边可以提供 OA 代写(HackerRank / CodeSignal / 牛客全覆盖)、远程语音助攻、mock interview 陪练,还会在关键节点帮你提醒 edge case,保证效率和正确率。

author avatar
Jory Wang Amazon资深软件开发工程师
Amazon 资深工程师,专注 基础设施核心系统研发,在系统可扩展性、可靠性及成本优化方面具备丰富实战经验。 目前聚焦 FAANG SDE 面试辅导,一年内助力 30+ 位候选人成功斩获 L5 / L6 Offer。
正文完