Coinbase OA | 4 Levels 硬核 coding,代码量大但逻辑清晰,顺利全 AC

1,406 Views

思路上, Coinbase OA 往往带有很强的业务场景色彩,也就是偏向 OOD和系统实现。代码量虽然偏大,逻辑有些绕,但只要结构设计得当,AC 只是时间问题。下面复盘一下这道题的通关思路,核心是模拟一个账户系统的资金流转,每一关都在上一关的基础上叠加新需求。

Coinbase OA  | 4 Levels 硬核 coding,代码量大但逻辑清晰,顺利全 AC

Overall feeling

  • 时间限制比较充裕,但代码量不小,需要耐心写清楚各种 edge case 和合法性检查。
  • 题目描述比较清晰,但细节多(尤其是合法性条件),一定要先把所有规则读透。
  • 语言不限,我用 Java 写的,Python 也完全可以。

Level 1:基础账户系统

Core requirements:维护多个账户,支持开户、转账、查询余额等操作。

Ideas:

  • 用 HashMap<String, Long> 存用户名 → 余额。
  • 每次操作前严格按题目要求校验合法性(账户是否存在、余额是否足够、金额是否合法等)。
  • 转账成功后更新双方余额即可。

这个 Level 主要是热身,注意不要漏掉任何校验条件,写清楚 helper 方法会让代码更整洁。

Level 2:查询转出金额 Top N

在 Level 1 基础上,新增查询转出总金额最多的前 N 个账户。

Key points:

  • 只有转账成功才累加转出金额。
  • 需要额外维护一个 HashMap<String, Long> 记录每个账户的 totalOutgoing。
  • 查询时,把所有账户信息收集起来,按转出金额降序、用户名升序排序,然后格式化输出指定格式。

排序可以用 Java 的 List + Comparator,或者收集到数组后排序。注意输出格式要严格匹配题目要求(包括空格、换行等)。

Level 3:延迟扣款(Scheduled Payment)

引入了定时扣款功能,难度明显上升。

核心设计:

  • Use PriorityQueue(最小堆)维护所有待执行的扣款事件,按时间戳排序。
  • 每次操作前,必须先把当前时间戳 currentTime 之前(含等于)所有到期的扣款全部处理掉。
  • 处理扣款时:
    • 检查账户余额是否足够。
    • 成功则扣款、更新 totalOutgoing 等统计。
    • 失败则按规则处理(题目一般会说明)。
  • 扣款事件需要记录 payer、amount、scheduledTime 等信息。

优先队列的 Comparator 要按时间升序,记得处理完的事件要 poll 掉,避免重复执行。状态更新要和 Level 1、2 复用同一套逻辑。

Level 4:账户合并 + 历史查询(最难)

这是整个 OA 的高潮,增加了账户合并(Merge)和历史余额查询。

账户合并:

  • 把 source 账户的所有资产(余额、totalOutgoing、未执行的定时扣款)转移到 target 账户。
  • 转移后要把 source 账户标记为“已合并”或“无效”,后续操作到 source 时要返回失败。
  • 定时扣款事件也需要重新绑定到 target 账户。

历史查询:

  • 每次余额发生变化(转账、扣款、合并等)时,都记录一条历史记录(timestamp, newBalance 等)。
  • 查询某个账户在某个时间点的余额时,遍历该账户的所有历史记录,找到最后一个 timestamp <= 查询时间 的状态。

Implement recommendations:

  • 可以给每个账户维护一个 List<History>,History 类记录时间和余额。
  • 合并时要把 source 的历史也合理处理(通常是把 source 的历史“快照”转移或标记)。
  • 优先队列里的定时任务也要更新 payer 为 target。

这个 Level 代码量最大,状态比较多,建议把账户类封装一下(Balance, Outgoing, Histories, ScheduledPayments 等),代码会清晰很多。

Summary and suggestions

Coinbase 的 OA 整体玩的就是一个增量开发。强烈建议大家在 Level 1 和 Level 2 的时候就把面向对象的架子搭好,把异常处理和校验逻辑封装成独立的方法。如果不封装,到了后面满屏的条件判断和连环更新绝对会让你抓狂。沉下心来理顺逻辑,搞定它是没问题的。

若您正在攻坚此类高难度大厂笔试,我们团队——由牛津、普林斯顿背景及一线大厂(Google、Amazon、阿里)资深工程师组成,提供 OA ghostwriting 、笔试代考及 VO 辅助服务。我们深耕 HackerRank 等平台,通过远程无痕技术确保测试用例 100% 通过。无论遇到何种绕人的逻辑难题,我们都能助您稳扎稳打,高效通关。直接联系学长,让我们为您提供精准的实战支持,助力斩获心仪 Offer。

author avatar
Jory Wang Amazon Senior Software Development Engineer
Amazon senior engineer, focusing on the research and development of infrastructure core systems, with rich practical experience in system scalability, reliability and cost optimization. Currently focusing on FAANG SDE interview coaching, helping 30+ candidates successfully obtain L5/L6 Offers within one year.
END
 0