
最近这段时间 Amazon OA 基本天天都有同类题型,尤其是 intern 岗位,常见就是两道题组合。下面按面试实战的方式,快速讲清这两题的核心思路。
题目 1:机器人阈值稳定配置计数

题意抽象
给一个阈值数组 coordinationThreshold[i],每个机器人要么开机(Operating),要么待机(Standby)。
设全局开机数量为 k:
- 机器人
i若开机,要满足:k - 1 >= threshold[i] - 机器人
i若待机,要满足:k < threshold[i]
问总共有多少种开关机配置满足所有机器人都不故障。
关键观察
这题不是暴力枚举每个机器人开或关(2^n 太大),核心在于:
- 一旦全局开机数
k固定,谁能开、谁必须关基本被阈值单调性决定 - 所以可以枚举
k = 0..n,判断是否存在合法配置
判定逻辑(排序后)
把阈值升序排序为 t[0..n-1]。
若恰好有 k 个开机:
- 前
k个(更小阈值)作为开机候选,需要满足t[i] <= k-1 - 后
n-k个(更大阈值)作为待机候选,需要满足t[i] > k
只要这个分界成立,说明对应 k 存在稳定配置。
复杂度
- 排序:
O(n log n) - 枚举 + 判定:
O(n)或O(n log n)(看实现)
整体可稳过 OA。
题目 2:仓库检查日不为负 + 容量上限下的最少补货天数
题意抽象
有 tasks[i] 表示每天晚上的入库/出库/检查行为:
tasks[i] > 0:入库tasks[i] < 0:出库(允许库存暂时为负)tasks[i] = 0:检查日,要求库存不能为负
每天早上可以选择应急补货(补多少都行),但任何一天库存不能超过 max_products。求最少需要补货的天数;若无解返回 -1。
解题主线
把“应急补货”看成一个单调不减的全局增量变量,每次补货尽量让它一次覆盖更长区间。
操作上通常是:
- 先做原始
tasks的前缀和,得到不补货时每天库存轨迹 - 对后缀做最小值信息,快速判断“当前补到多少,往后最远还能合法走到哪”
- 只在必要时(遇到检查日库存会负)触发一次补货
- 每次补货都贪心拉到当前可行的最大值(不超过容量约束),从而减少补货次数
为什么贪心对
目标是最少“补货次数”,不是最少“补货总量”。
因此每次触发补货时,把这次补货的覆盖范围尽量做大是最优方向:
- 覆盖越长,未来再次触发的机会越少
- 在容量上限约束下,当前局部最优能导向全局最少次数
复杂度
利用前缀和 + 后缀最小值可做到线性或线性对数级别,足够通过 OA 数据规模。
面试实战建议(Amazon Intern OA)
这两题的共同点是:
- 都不是重实现题,而是重“建模 + 单调性”
- 先把变量定义清楚,后面代码会非常顺
建议做题节奏:
- 先把约束写成不等式
- 先验证单调性/分界性质
- 再决定是“枚举答案 + 判定”还是“贪心推进”
总结
近期 Amazon intern OA 这类两题组合出现频率很高:
- 题 1:阈值排序 + 枚举开机数量
- 题 2:前缀和 + 后缀最小值 + 必要时贪心补货
如果你正在准备 Amazon OA,把这两题的建模思路吃透,性价比很高。
💬 需要 OA / VO 辅助讨论
亚麻、Google、TikTok、微软、Meta、Uber 等方向,近期题型都在持续整理中。
有不确定的题可以直接来问。
微信:Coding0201
#留学生找工作 #sde找工 #留学生求职 #北美求职 #美国留学生 #ng找工 #Google面试 #亚麻oa #TikTok面试 #面经