← 返回博客列表
Microsoft

Microsoft OA 两题全AC复盘:合金生产二分答案 + 区间重叠最大团队

2026-03-20

Microsoft OA,75 分钟两道题,全AC。T1 是经典二分答案,T2 是区间相交统计。以下是纯思路复盘,不含代码。

Microsoft OA 题目截图


考试概况

项目 详情
时长 75 分钟
题数 2 道
难度 Medium
岗位 Intern / New Grad SDE
结果 全AC

T1:合金最大生产量(Alloy Production Binary Search)

Microsoft OA T1 合金生产题目

题目核心

给定 n 种金属,每种金属有:

预算为 budget,求最多能生产多少单位合金

解题思路

关键观察:生产数量 x 越大,所需总成本单调递增。这正是二分答案的适用条件。

二分答案框架

check(x) 校验逻辑

  1. 对每种金属 i,计算需要的总量:total = x * composition[i]
  2. stock[i] ≥ total,库存足够,无需购买
  3. 否则需购买 (total - stock[i]) 单位,花费 (total - stock[i]) * cost[i]
  4. 累加所有金属的购买成本,判断是否 ≤ budget

二分结果:找到最大的满足 check(x)x

复杂度分析

关键洞察

单调性是二分的前提:生产量越多,成本越高,这一单调性保证了二分的正确性。check(x) 是一次线性扫描,整体复杂度极低。注意二分上界要设得够大——可以用 (budget / min_cost + max_stock) 来估算安全上界。


T2:区间重叠最大团队(Max Team with Center Employee)

题目核心

给定每个员工的工作时间区间 [startTime[i], endTime[i]],两个员工若区间有重叠则可以互动。

要求找到一个团队,使得存在一个**「中心员工」,他能与团队内所有人都有时间重叠。求最大团队人数**。

解题思路

问题等价转化:找一个员工 i,使得与 i 的区间相交的员工数最多(含 i 自身)。

区间相交判断:两个区间 [s1, e1][s2, e2] 相交,当且仅当:

max(s1, s2) ≤ min(e1, e2)

等价于:s2 ≤ e1e2 ≥ s1

暴力做法:枚举每个员工 i 作为中心,统计满足相交条件的员工数,取最大值。O(n²),数据量小时可过。

优化做法(O(n log n))

  1. 将所有区间按 start 排序
  2. 枚举每个区间 i 作为中心:
    • 满足 start[j] ≤ end[i] 的区间:可用二分找右边界
    • 同时需要 end[j] ≥ start[i]:已排序后,从左往右用双指针维护左边界(剔除结束时间过早的区间)
  3. 有效区间数 = 右指针位置 - 左指针位置

扫描线思想:将 startend 拆成事件点,但本题不是求全局最大重叠数,而是「某个区间作为中心时覆盖的区间数」,直接双指针更简洁。

复杂度分析

关键洞察

「中心员工能与所有人重叠」等价于「找覆盖其他区间数最多的区间」。排序后双指针是解决「某区间与多少其他区间相交」的标准模式。


两题核心思路对比

题目 核心技巧 时间复杂度 空间复杂度
T1 合金生产 二分答案 + 线性校验 O(n log C) O(1)
T2 最大团队 排序 + 双指针区间相交统计 O(n log n) O(n)

常见思维误区

题目 误区 正确方向
T1 直接枚举生产数量 认识到单调性,用二分答案
T1 二分上界设太小导致答案截断 用预算估算安全上界
T2 用 BFS/图连通分量求解 本题不是连通,而是「某点覆盖最多」
T2 暴力 O(n²) 超时 排序后双指针降到 O(n log n)

Microsoft OA 应试策略

Microsoft OA 特点

临场策略

  1. 看到「最多/最少满足条件」类问题:先想单调性,单调则二分答案
  2. 看到区间重叠/覆盖类问题:先排序,再考虑双指针或扫描线
  3. T1 二分上界要想清楚,避免截断答案
  4. T2 相交条件 max(s1,s2) ≤ min(e1,e2) 要记牢,等价于两个不等式
  5. 写完跑样例,边界情况(单个员工、全部相交、无相交)都测一下

相关 LeetCode 练习

题号 题目 对应 Microsoft OA 考点
2861 Maximum Number of Alloys T1 完全相同题型
875 Koko Eating Bananas T1 二分答案经典题
2779 Maximum Beauty of an Array T2 区间覆盖计数
56 Merge Intervals T2 区间排序处理

🚀 需要 Microsoft OA 辅助?

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

立即添加微信:Coding0201

获取:

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