← 返回博客列表
Amazon

Amazon Intern OA 两题全AC复盘:安全等级分组 + 约数替换最小总和

2026-03-20

Amazon Intern OA 两道题,思路清晰,全AC。Q1 是分组计数贪心,Q2 是约数替换贪心。以下是纯思路复盘,不含代码。

Amazon Intern OA 题目截图


考试概况

项目 详情
平台 HackerRank
题数 2 道
难度 Medium
岗位 Intern SDE
结果 全AC

Q1:安全等级分组(Security Level Grouping)

Amazon Intern OA Q1 安全等级分组

题目核心

给定一组人员,每人有一个安全等级。需要将他们分配到若干组,满足:

最少需要多少组

解题思路

第一步:统计频率

用一个哈希表统计每种安全等级出现的次数,得到频率数组。

第二步:对每个等级独立计算所需组数

对于某个等级出现了 cnt 次,要把这 cnt 个人分配到若干组,使得每组人数相差 ≤ 1。

关键问题:这 cnt 个人最少分成几组?

换个角度思考:如果分成 g 组,每组人数要么是 cnt // g,要么是 cnt // g + 1。要满足相差 ≤ 1,只需要 g 满足这个条件即可——实际上,对于任意 g,把 cnt 个人分成 g 组都能满足相差 ≤ 1(因为可以用 cnt // gcnt // g + 1 组合分配)。

所以问题等价于:所有等级共同分组时,总组数最少是多少

全局约束:任意两组(跨等级也算)人数之差 ≤ 1,意味着全局所有组的人数只能是某个值 kk+1

枚举组大小 k

复杂度分析

关键洞察

「任意两组人数相差 ≤ 1」这个约束把问题转化为:全局组大小只能取两个连续整数 k 和 k+1。枚举 k 再对每个等级上取整即可。


Q2:约数替换最小总和(Divisor Replacement Min Sum)

题目核心

给定一个整数数组,每个数可以替换为数组中存在的它的某个约数(包括自身)。目标是让替换后数组的总和最小,求该最小总和。

解题思路

贪心方向:总和最小,所以每个数应该尽量替换成尽可能小的约数

关键性质:每个数的最小约数(大于1的)是它的最小质因数。但替换必须用数组中已有的数。

正确做法

  1. 对数组排序去重,得到有序集合 S
  2. S 中每个数 x,找它在 S 中的最小约数
    • 枚举 S 中比 x 小的数 d,若 x % d == 0,则 dx 在数组中的最小约数
    • d 替换 xx 映射到 d
    • 若不存在这样的 dx 保持不变
  3. 对原数组每个元素,按映射关系替换后求总和

优化:排序后从小到大处理,对每个数只需要找比它小的数中是否有约数,无需完整质因数分解。

复杂度分析

关键洞察

问题的本质是:在数组内部建立一个「替换映射」,每个数映射到数组中它的最小因子。排序后贪心从小到大处理,保证每个数找到的是真正的最小可用约数。


两题核心思路对比

题目 核心技巧 时间复杂度 空间复杂度
Q1 安全等级分组 频率统计 + 枚举组大小 O(n + L·max_cnt) O(L)
Q2 约数替换 排序去重 + 贪心找最小约数 O(n log n + m²) O(m)

常见思维误区

题目 误区 正确方向
Q1 直接对所有人排序分组,忽略等级限制 先按等级分桶,再枚举全局组大小 k
Q1 以为每个等级独立最小化组数 全局约束:所有组大小只能是 k 或 k+1
Q2 对每个数做完整质因数分解 只需在数组内找最小约数,排序后枚举即可
Q2 忘记约数必须在数组中存在 先建立数组元素集合,只能替换为集合内的约数

Amazon Intern OA 应试策略

Amazon Intern OA 特点

临场策略

  1. Q1 类分组题:先想「约束是什么」,把模糊的「相差 ≤ 1」转化为「所有组大小只能是 k 或 k+1」
  2. Q2 类替换题:先想「替换的目标是什么」,贪心方向是最小化,所以找最小可用替换值
  3. 排序往往是关键第一步——有序之后很多贪心性质自然成立
  4. 注意题目中「数组中存在」这类隐含约束,不要遗漏
  5. 写完跑样例再提交

相关 LeetCode 练习

题号 题目 对应考点
2966 Divide Array Into Arrays With Max Difference Q1 分组差值约束
945 Minimum Increment to Make Array Unique Q1 贪心分配
2344 Minimum Deletions to Make Array Divisible Q2 约数关系
1998 GCD Sort of an Array Q2 因子与数组关系

🚀 需要 Amazon Intern OA 辅助?

oavoservice 专注北美大厂 OA/VO 全程辅助,Amazon Intern OA 是我们的核心服务场景,HackerRank 高频题库覆盖率极高。

立即添加微信:Coding0201

获取:

📱 微信:Coding0201 | 💬 Telegram:@OAVOProxy | 📧 [email protected]