12.17 Amazon OA 面经分享|HackerRank 双题,逻辑 + 数据结构并重

112次閱讀

🇺🇸 Amazon 最近又开始批量发 OA 了,我这场 Amazon OA 是 12 月 17 号收到的,
测试平台是 HackerRank,2 道 Coding 题,没有行为面,全程就是硬核做题。

整体感受是:
题目不算偏门,但题干很长、逻辑绕
如果读题不仔细,很容易一开始方向就错
时间压力不小,写代码之前一定要把规则捋清楚

下面是两道题的完整复盘。

12.17 Amazon OA 面经分享|HackerRank 双题,逻辑 + 数据结构并重

第一题:Server Allocation + Cost Calculation

题意概述

  • 给一个数组 servers
  • 下标表示服务器
  • 数组值表示 当前服务器可用的空闲实例数量

现在有 m 位顾客,每位顾客 依次 来租服务器实例,规则如下:

  1. 每位顾客都会选择 当前空闲实例最多的服务器
  2. 选择后,该服务器的空闲实例数 减 1
  3. 在“选择之前”,会产生一次 cost
cost = 当前服务器中
       最小空闲实例数
     + 最大空闲实例数

最终要求:
m 位顾客分配完成后,所有 cost 的总和

关键考点

这题表面是模拟,实际上考的是:

  • 优先队列(Heap)
  • 每一步都要 动态维护 min / max
  • 非常容易写成 O(nm) 直接超时

正确思路方向(不贴代码,但给思路)

  • 用一个 最大堆 维护当前空闲实例最多的服务器
  • 同时维护一个 最小堆 或者能快速拿到当前最小值
  • 每一轮:
    • 先读取当前 min + max → 计入 cost
    • 再 pop 最大值,减 1 后重新 push

坑点

  • 多个服务器空闲数相同的情况
  • 减到 0 之后是否还参与比较
  • m 可能大于服务器总实例数(是否继续选)

这道题非常 Amazon 风格:
规则写得很长,但真正的难点在“你能不能保持状态一致”

第二题:Warehouses 分组 + 最大化最小半区总量

这道题明显比第一题难一档,读题本身就是第一道门槛

题意拆解

已知:

  • 有若干个 logs
    • 每个 log 有对应的 parts 数量
  • k 个 warehouses(k 一定是偶数

存储规则:

  1. 每个 warehouse 只能存储来自同一个 log 的零件
  2. 同一个 log 的零件 可以分散存到多个 warehouse
  3. 如果 warehouse 不够,可能会有部分 log 的零件无法存储

存储完成后:

  • 将 warehouses 按存储零件数排序
  • 前一半(0 ~ k/2):存储的零件数 最多
  • 后一半(k/2 ~ k):存储的零件数 最少

目标

最大化:后一半 warehouses 的零件数总和

也就是说:
不是让总存储最多,而是
让“最差的一半”尽量不差

这题在考什么?

本质是一个:

  • 资源分配 + 排序 + 贪心 / 二分 / DP 思维
  • 非常像 Amazon 常出的: maximize the minimum / balance the worst case

思考方向(面试官期望)

  • 你要意识到:
    前一半 warehouse 存多少不重要
    关键是怎么“抬高后半部分的地板”
  • 常见思路包括:
    • 二分答案(猜后半最小和能不能达到)
    • 贪心分配小块优先填后半
    • 控制单个 log 被拆分的方式

这是那种:

写不完代码也没关系,但思路一定要对

为什么你需要 ProgramHelp 的OA实时辅助

看完上面的解析,你可能觉得自己懂了。但在实际 OA 倒计时 90 分钟 的高压下,面对 HackerRank 黑底白字的 IDE,你真的能保证:

  1. Bug-free: 一次性写对 Heap 操作,处理好 Edge Cases(比如 max 减小后变成了 min)?
  2. 阅读理解: 在 5 分钟内读懂第二题那个绕口令一样的需求?
  3. 代码查重: 你的代码不会和 GitHub 上的一模一样而被 Flag?

不要拿你的 Dream Offer 赌博。

我们提供的 High-End 服务:

  • 实时屏幕共享辅助 (Screen Share Support): 我们的算法专家与你实时连线,你在做,我们在看。遇到卡顿,直接语音/文字提示思路和代码。
  • 原创代码保证: 每一行代码都由我们在副屏手写,符合你的 Coding Style,绝非网上的 Copy-Paste。
  • All Cases Passed: 我们的目标不仅仅是做完,而是全绿。

推荐阅读 / 备考参考链接:

👉 亚马逊 SDE OA 全流程复盘|高频真题 + 备考建议一次讲清
📍 全面介绍 Amazon OA 形式、典型真题和准备策略,是你写 Amazon 面经时非常好的参考资料。Amazon SDE OA 全流程复盘|高频真题 + 备考建议一次讲清

👉 Atlassian OA 面经|ProgramHelp 全程语音助攻的真实体验
📍 ProgramHelp 在 Atlassian OA 中的实战使用复盘,可拿来作为“服务实际效果”的参考案例。Atlassian OA 面经|ProgramHelp 全程语音助攻的真实体验

👉 Jump Trading SDE 面经分享|ProgramHelp 远程助攻全程陪伴
📍 ProgramHelp 在金融科技公司现场和 VO 面试中的助攻案例分享,对准备量化或 SDE 面试也有启发。Jump Trading SDE 面经分享|ProgramHelp 远程助攻全程陪伴

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