Citadel SWE OA 的节奏很直接:限时、强测试、题目不绕弯,但优化和边界要求很高。准备时不要只刷能 AC 的模板,要练到能在 75 分钟左右写完两到三道 medium-hard 题,并把复杂度解释清楚。可以先看 Citadel Software Engineer interview guide,再按 HackerRank 环境练计时提交。
第一题:Subarray Remainder Counter
Question description
Given an array of integers Nums 和正整数 k,要求统计有多少个连续子数组的和可以被 k 整除。数组里有负数,长度可以到 2 * 10^5,结果用 64 位整数返回。
Problem-solving ideas
前缀和取模后,如果两个位置的余数相同,中间这段子数组的和就能被 k 整除。扫描数组时维护 remainder -> count,初始放入余数 0 一次。每读一个数,更新当前前缀余数,先把已有同余数量加到答案里,再把当前余数计数加一。负数要用 (x % k + k) % k 规整,否则不同语言里负余数会让隐藏测试挂掉。这个题的核心是哈希表计数,真正卡人的是 64 位结果、负数取模和初始空前缀。Complexity:时间 O(n),空间 O(k) 或 O(n)。
第二题:BFS Maze With Keys
Question description
给定一个二维迷宫,S 是起点,T 是终点,# It's a wall,a-f 是钥匙,A-F 是门。每走一步成本为 1,只有拿到对应小写钥匙后才能穿过大写门。返回从 S Arrive T 的最短步数,无法到达返回 -1.
Problem-solving ideas
状态不能只用坐标,必须把钥匙集合放进状态里。用 bitmask 表示已经拿到的钥匙,BFS 队列元素是 (r, c, mask, dist),visited 用三维结构或哈希集合记录 (r, c, mask)。遇到钥匙就把对应 bit 置 1;遇到门先检查 bit,不满足就跳过。因为每条边成本相同,第一次到达 T 就是最短路径。网格大时要避免把 path 字符串放进队列,只存状态和距离。类似的最短路状态压缩题可以参考 Shortest Path in Binary Matrix 的 BFS 写法,再把钥匙维度加进去。Complexity:时间 O(mn * 2^K),空间 O(mn * 2^K),K 是钥匙数量。
第三题:Streaming Median
Question description
系统持续收到交易延迟数据 latency_ms,需要支持两个操作:add(value) 加入一个延迟值,median() 返回当前所有延迟的中位数。数据量很大,不能每次查询都重新排序。
Problem-solving ideas
用两个堆维护中位数。左边是大顶堆,保存较小的一半;右边是小顶堆,保存较大的一半。插入时先根据当前堆顶决定放哪边,再做 rebalance,让两个堆大小差不超过 1。查询时,如果总数为奇数,返回元素更多那边的堆顶;如果为偶数,返回两个堆顶平均值。实现细节要处理空堆、偶数平均溢出、重复值和负数。这个题在交易系统语境里会追问滑动窗口中位数,follow-up 可以再引入延迟删除哈希表。Complexity:插入 O(log n),查询 O(1),空间 O(n)。
Exam preparation advice
Citadel OA 要把 prefix sum、BFS/DFS、堆、DP、图最短路和状态压缩刷到限时可写。做题时先写出能解释的正确解,再处理大数据边界。HackerRank 输入输出也要提前练,尤其是多 case、64 位结果和自定义 parser。Glassdoor 上的 Citadel SWE 面试记录里也提到 BFS、stack 和多题限时,这类题不适合临场才回忆模板。
FAQ
Citadel SWE OA 要按什么难度准备?
按 LeetCode Medium 到 Hard 准备。简单题可以热身,但主训练要放在需要优化、证明和边界处理的题上。
HackerRank 环境最容易出什么问题?
输入解析、long long、负数取模、数组越界和没有覆盖空输入。提交前用极小样例、重复值、大数和极端窗口各跑一遍。
BFS 题怎么避免写乱?
先定义状态,再定义转移。只要状态里少了钥匙、剩余步数、方向或资源这种维度,visited 就会提前剪掉正确路径。
关于 CSOFFERPREP
进 VO 之前,可以找 CSOFFERPREP 做实时面试助攻和备考辅导。CSOFFERPREP 深耕北美 IT 行业多年,已帮助万余名学生进入全球 500 强企业。导师来自一线大厂资深工程师和面试官,对 Citadel 这类注重算法和工程表达的公司的面试套路很熟悉。无论是 OA辅助、OA 辅导、VO 辅助、VO 模拟面试、VO 辅助还是系统设计辅助,都可以获得更有针对性的准备方案:CSOFFERPREP · 服务详情



