本文整理了四道 Capital One OA 真题,考试使用 CodeSignal 平台,时长约 70 分钟。四道题分别涉及班车等待时间计算、数组元素统计、矩阵正方形边框求和,以及数位交换后的配对计数。
下面按照题目顺序整理题目要求和解题思路,重点说明每道题的处理方法,以及实现过程中需要注意的边界条件。
第一题:统计数组中不同于前两个元素的数量

给定一个整数数组 numbers,你的任务是统计数组中所有不等于 numbers[0] 或 numbers[1] 的元素的数量(如果存在这些元素)。假设数组的索引从 0 开始。
解题思路:先判断数组长度,如果长度为 1,直接返回 0。否则,取 numbers[0] 和 numbers[1] 作为判断基准,遍历整个数组,统计同时满足 numbers[i] != numbers[0] 和 numbers[i] != numbers[1] 的元素数量,最后返回计数结果。整个过程只需遍历数组一次,时间复杂度为 O(n),空间复杂度为 O(1)。
第二题:数组遍历与元素统计

假设你正在游玩一个主题公园,园区提供特殊的接驳车服务,方便游客在园区内移动。接驳车按照固定的时间表运行,字符串数组 shuttle_times 记录了接驳车当天到达当前位置的各个时间。给定一个字符串 current_time,表示当前时间。你的任务是计算距离下一班接驳车到达还需要等待多长时间。如果当天已经没有后续接驳车,则返回 "-1"。所有时间均采用 HH:MM 格式,使用 24 小时制。接驳车的到达时间已经按照时间先后顺序排列。
注意,接驳车到达时会立即发车。如果某班接驳车的预定时间早于 current_time,则说明它已经发车。
解题思路:先将当前时间和所有班车时刻统一转换为从 00:00 起算的总分钟数,方便进行比较。然后按照题目给定的顺序逐个检查,找到第一个大于等于当前时刻的班车,用班车时刻减去当前时刻,得到等待的总分钟数,再将差值转换为 HH:MM 格式输出。如果遍历完所有班车仍未找到符合条件的班次,则说明当天已没有可用班车,返回 "-1"。
第三题:矩阵遍历与正方形边框求和

给定一个矩形矩阵 matrix 和一个整数 frameSize。对于矩阵中所有连续的 frameSize × frameSize 正方形子矩阵,考虑每个子矩阵最外层边框上的元素。
你需要完成以下任务:
- 计算每个
frameSize × frameSize正方形子矩阵边框上所有元素的总和。 - 找出所有子矩阵边框元素总和中的最大值。
- 仅考虑边框元素总和达到最大值的子矩阵,找出这些边框中出现过的所有不同整数。每个整数只计算一次。
- 返回这些不同整数的总和。
解题思路:枚举所有 frameSize × frameSize 正方形的左上角坐标,对每个正方形只累加边框上的元素,得到该正方形的边框总和。遍历过程中维护当前最大边框和及对应的数字集合:如果当前边框和超过已知最大值,就更新最大值,并清空之前的集合,重新记录当前边框上的所有不重复数字;如果当前边框和等于最大值,则将当前边框上的数字也加入集合。最后,将集合中所有不重复的数字求和,即为答案。
第四题:数位交换与哈希表计数

在一个数字拥有魔法力量的世界里,有一颗具有特殊能力的魔法宝石。它可以通过交换一个数字中任意两位数字的位置,将该数字转换为另一个数字,且最多只能交换一次。现在给定一个整数数组 numbers,请你统计满足条件的不同数对 (i, j) 的数量,其中 0 ≤ i < j < numbers.length,并且数对中的一个数字可以通过交换自身的任意两位数字(最多交换一次)转换为另一个数字。
注意: 如果两个数字本身就相等,无需进行任何交换,也应将它们计为一组符合条件的数对。
解题思路:按照原数组的顺序依次处理每个数字,同时使用哈希表记录此前各数字出现的次数。对于当前数字,先将其转换为字符数组,再枚举任意两个下标进行一次交换,并将交换后的结果放入集合中去重。同时,将原数字本身也加入集合,避免遗漏无需交换的情况。然后逐一查询集合中每个数字在哈希表中出现的次数,并将这些次数累加,即可得到与当前数字匹配的数对数量。
总结
这四道 Capital One OA 真题的难点主要在于准确理解题意,并根据条件选择合适的处理方式。班车题需要统一时间单位,矩阵题要正确计算正方形边框,数位交换题则需要结合集合去重和哈希表统计匹配数量。
练习时,除了掌握基本算法,也要留意重复元素、边界位置和计数顺序等细节。这些问题往往会直接影响最终结果。
如果你正在准备Capital One或其他大厂的 OA 或面试,除了刷题,也可以结合真实面经熟悉常见题型和考察方向。InterviewShow 整理了 Microsoft、Amazon、Google、Stripe、TikTok 等科技公司的面试资料,可领取相关公司的 OA/VO 真题,帮助你了解常见考点和面试形式。我们也提供 OA 辅助和面试辅助服务,覆盖 Coding、System Design 和 BQ。你可以查看服务介绍,或直接联系我们了解详情。
FAQ
1. Capital One OA 难度大吗?
Capital One OA 的难度会因岗位、招聘批次和具体题目而异。本文整理的四道题主要涉及数组、字符串、矩阵遍历和哈希表,适合用来练习基础算法及边界条件处理。
2. Capital One OA 需要重点练习哪些算法?
建议熟悉数组遍历、字符串处理、哈希表计数和矩阵枚举。练习时不要只关注正常输入,也要检查重复元素、空数组或单元素数组等边界情况,并以具体题目的输入约束为准。
3. 如何高效准备 Capital One OA?
可以先练习常见的基础 Coding 题,再进行限时模拟。如果实际测评安排约 70 分钟完成四道题,可以提前训练读题、编写代码和调试的时间分配,但应以收到的具体测评通知为准。