目录
正在加载目录...

Capital one oa questions | 70 分钟 CodeSignal 4 题 提前 40 分钟交卷全 AC

端午刚过收到 Capital One 的 OA 邀请,70 分钟 CodeSignal 4 题,当时正在刷亚麻真题的我立刻调整策略:不搞题海战术,精准狙击高频考点!最后提前将近 40 分钟交卷,4 题全部通过。把题目和思路整理出来,给后面投 Capital One 的朋友参考。

Capital one oa questions | 70 分钟 CodeSignal 4 题 提前 40 分钟交卷全 AC

OA 基本信息

平台是 CodeSignal,时间限制 70 分钟,共 4 道题,难度按顺序递进:Easy → Medium → Medium+ → Hard。题目都是英文描述,不需要处理输入输出,直接写函数体。Capital One 的 OA 在 CodeSignal General 题库里出题,4 题的考点分布非常稳定,基本是字符串/数组基础、哈希表/前缀和、双指针/滑动窗口、动态规划/图论这个顺序。

Q1:空间站穿梭机任务(模拟)

题意:有两个空间站 Alpha 和 Beta,两个方向的班次时间分别存在有序数组 alpha2beta 和 beta2alpha 里,每段旅程固定耗时 100 个时间单位。需要完成 missions 次往返任务,每次都尽量搭乘最早可用的班次,求完成全部任务时的时间点。

解题思路:纯模拟题,逻辑不复杂,关键是找“当前时间之后最早的可用班次”这个子逻辑。因为数组已经有序,可以用二分搜索找到第一个大于等于当前时间的班次,时间复杂度 O(missions × log n),完全够用。

Q2:恰好含 2 个元音的长度为 3 的子串(滑动窗口)

题意:给一个小写英文字母字符串,统计长度为 3 的子串中,恰好包含 2 个元音字母(a/e/i/o/u)的子串数量。

解题思路:长度固定为 3,直接滑动窗口,每次向右移动一格,统计窗口内元音数量是否等于 2。用一个 set 存元音字母,代码简洁,O(n) 解法,三分钟内应该能写完。唯一需要注意的是空字符串的边界情况,加一个长度判断就行。

Q3:满足最小间隔的山峰最小高度差(排序 + 双指针)

题意:给一个山峰高度数组 heights 和一个最小观察距离 viewingGap,找出所有满足 |a-b| >= viewingGap 的下标对 (a, b),返回这些下标对中高度差的最小值。

解题思路:暴力解是 O(n²),题目允许这个复杂度,可以直接双层循环。j 从 i + viewingGap 开始,不是 i + 1,写的时候要注意。如果面试官要求更优解,可以往排序方向思考,但 OA 里 O(n²) 完全够用,不要为了优化浪费时间。

Q4:网格绘制五种方块图案(模拟 + 图形放置)

题意:给一个 n×m 的全零网格,按顺序放置一系列方块图案。图案共五种:A(单个方块)、B(横向 4 格长条)、C(2×2 正方形)、D(L 型)、E(T 型朝下)。每个图案用它在 figures 数组里的 1-based 序号标记,按照重力规则从上往下放置,贴着底部或者已有图案的顶部落下。

解题思路:这道题是 OA 里最费时间的一道,逻辑不难但实现量大。核心思路是把五种图案的形状预定义好,每种图案用相对坐标矩阵表示。然后模拟“重力落下”的过程——对于每个图案,找到它能放置的最低合法行,也就是从底部向上扫描,找到第一个不会和已有方块重叠的位置。最后把图案标记到网格上即可。写完记得用例子手动验证一遍再提交。

备战建议

Capital One 的 OA 题型非常稳定,前两题基本是送分,第三题在边界条件上容易出错,第四题实现量大但逻辑不复杂。时间分配建议:Q1+Q2 合计不超过 15 分钟,Q3 给 15 分钟,剩下 40 分钟留给 Q4,写完之后一定要留时间跑测试用例。

最后想分享一下我的备战心得

Capital One OA 的信息差还是挺大的,尤其是 Q4 的图形放置逻辑,如果没有提前见过类似题型,很容易时间不够。我在准备过程中找 interviewshow 做了 OA 辅助,他们整理的 Capital One 高频题库覆盖率很高,Q3 那道双指针变种题在题库里见过,节省了不少卡壳时间,最后也顺利通过了。

END