Question Study

Microsoft 面试题专题

本地面经库有 96 条来源 URL 去重后的记录,其中 96 条有正文;目前整理出 110 道代表练习题,其中 110 道已完成独立深文。题目清单仍在逐帖核对和补充。

Reading Guide

如何使用这份题目清单

题目根据面经方向重新表述,其中可能包含站内攻略建议的训练题;它们不是公司的官方题库,也不保证下一场面试重复出现。

先分岗位

Microsoft 的不同岗位和团队可能考不同内容。先核对 JD 与面试邀请,再选对应题型。

合并同题变体

相同核心考点只保留一条,后续的附加约束放在原题里练,避免把同一道题当成多道题刷。

练习顺序

先口述输入、输出和边界,再写核心方案;最后解释复杂度、失败路径和面试官可能追加的约束。

Deduplicated Question Map

按考点去重的代表题

同一题的追加条件合并在一条里。题目清单用于确定训练范围;具体流程和准备优先级见公司攻略。

Intern OA Coding · 02

相邻元素可交换,但每个元素最多参与一次

相邻元素可交换,但每个元素最多参与一次;最大化按 1 开始的位置加权和 Σarr[i]×(i+1)。

解题切入:相邻交换的独立增益是 a[i]−a[i+1];每元素至多一次等价选路径图不相交边,DP 在选/不选末边中取最大值。

阅读这道题的独立深文 →
SDE2 Phone Screen Coding · 03

无序上下线事件 (userId,timestamp,isOnline)

无序上下线事件 (userId,timestamp,isOnline):查询时间窗内各用户在线总时长并返回 Top K。

解题切入:无序上下线事件先按时间排序、逐用户配对,单段与查询窗的交集长度为 max(0,min(end,off)−max(start,on));并列规则与未闭合会话需先约定。

阅读这道题的独立深文 →
SWE2 Infra Coding · 04

把 Ethernet(1-3)/(1-4) 及 Ethernet(1,2,3)e(pt1,ptb) 这类范围和枚举表达式展开为笛卡儿积

把 Ethernet(1-3)/(1-4) 及 Ethernet(1,2,3)e(pt1,ptb) 这类范围和枚举表达式展开为笛卡儿积。

解题切入:范围/枚举表达式逐组解析,每加一组都与已有前缀做笛卡儿积;输出量可能指数增长,先检查数量上限。

阅读这道题的独立深文 →
OA Graph · 05

无向图每条道路有耗油量、每个城市油价不同且油箱无限

无向图每条道路有耗油量、每个城市油价不同且油箱无限;求 A 到 B 的最小购油费用。

解题切入:无限油箱油价图须把沿途最低价并入状态;走下一条耗油 w 的路按当前最低价付 w×price,到达新城后才更新最低价。

阅读这道题的独立深文 →
Microsoft AI Coding · 06

DNA 片段以 start/end tag 连接并拼 payload

DNA 片段以 start/end tag 连接并拼 payload;追问允许片段反向,以及输入含多条链如何处理。

解题切入:DNA 片段视为带 ID 的边:单向问有向欧拉路径,可反向问无向欧拉路径;多链分解的分叉与输出规则原帖没给,需追问。

阅读这道题的独立深文 →
SWE II OA Coding · 07

求长度在 [minLength,maxLength]、至多 maxUnique 种字符的子串最高出现频次

求长度在 [minLength,maxLength]、至多 maxUnique 种字符的子串最高出现频次;证明只需检查最短长度。

解题切入:最高频子串只需检查 minLength:任意更长合法子串的每次出现都映射到其合法最短前缀的一次出现。

阅读这道题的独立深文 →
SWE II OA Coding · 08

选恰好 k 台不相邻服务器,最小化被选服务器的最大值

选恰好 k 台不相邻服务器,最小化被选服务器的最大值;二分上限并贪心判定。

解题切入:不相邻服务器选 k 台可二分最大值;阈值下从左到右遇到可选位置即取、跳过下一位,判定是否至少取到 k 台。

阅读这道题的独立深文 →
SDE2 OA Bitwise · 09

给 A、B、N,选 X<2^N 最大化 (A xor X)(B xor X),最后对 10^9+7 取模

给 A、B、N,选 X<2^N 最大化 (A xor X)(B xor X),最后对 10^9+7 取模。

解题切入:XOR 最大乘积在 A/B 同位时把两个结果都设 1,异位时从高位向低位补给当前较小结果;先求真实乘积再取模。

阅读这道题的独立深文 →
SDE2 OA Tree DP · 10

树节点强/弱分别记 +1/-1,对每个节点求包含它的连通子图最大强减弱得分

树节点强/弱分别记 +1/-1,对每个节点求包含它的连通子图最大强减弱得分。

解题切入:树节点 strength 先用 down[u]=w[u]+Σmax(0,down[child]),再换根将父侧正贡献送入每个儿子,弱节点单独可得 -1。

阅读这道题的独立深文 →
Azure VO Coding · 11

判断十进制整数是否回文,并求严格大于它的最小回文数,例如 132→141

判断十进制整数是否回文,并求严格大于它的最小回文数,例如 132→141。

解题切入:求下一个严格更大回文数先镜像左半;若候选不大于原数,则从中间向左进位,再镜像,连续 9 会使位数增加。

阅读这道题的独立深文 →
Phone Screen Coding · 12

删除数组中的一个元素,使剩余数组的奇数下标和与偶数下标和相等

删除数组中的一个元素,使剩余数组的奇数下标和与偶数下标和相等;注意右侧下标奇偶翻转。

解题切入:删一个元素后右侧所有下标奇偶翻转;新偶和是左偶+右奇,新奇和是左奇+右偶,用左右累计和 O(n) 检查所有位置。

阅读这道题的独立深文 →
Hiring Event OA · 13

给数组与 k,求至少含 k 个不同数的最短连续子数组

给数组与 k,求至少含 k 个不同数的最短连续子数组。

解题切入:至少 k 种不同值的最短窗口用频次表和双指针,达标后先记录长度再缩左端,频次归零时删键。

阅读这道题的独立深文 →
Hiring Event OA · 14

只能将 A 的某个前缀或后缀整体 +1,求最少操作将 A 变成 B,并判断不可达情况

只能将 A 的某个前缀或后缀整体 +1,求最少操作将 A 变成 B,并判断不可达情况。

解题切入:前缀/后缀 +1 变换看 d=B−A 的升降:d0 须覆盖所有负跳变,最少操作为 d0+正跳变总量;若不足则不可达。

阅读这道题的独立深文 →
Phone Screen Coding · 15

只用两个栈实现 FIFO 队列,支持 push、pop、peek,并解释延迟倒栈的均摊复杂度

只用两个栈实现 FIFO 队列,支持 push、pop、peek,并解释延迟倒栈的均摊复杂度。

解题切入:两栈队列只在出栈为空时将入栈整体倒入,每元素最多转移一次,pop/peek 单次最坏 O(n) 但均摊 O(1)。

阅读这道题的独立深文 →
Coding · 16

矩阵螺旋遍历

矩阵螺旋遍历:顺时针用四边界避免 visited 矩阵,追问逆时针与填充。

解题切入:螺旋矩阵四边界按上/右/下/左收缩;每条边前检查剩余矩形,单行单列不能重复读取,逆时针改为左/下/右/上。

阅读这道题的独立深文 →
DE Tech Screen Python · 17

按整数出现频次升序、同频按数值降序排列数组

按整数出现频次升序、同频按数值降序排列数组;不能使用内置排序,需手写排序。

解题切入:频次排序先计数,再以 (频次升序,数值降序) 为比较器手写归并,保留重复项且不调用内置 sort。

阅读这道题的独立深文 →
Full-stack Coding · 18

判断 IPv4 字符串是否合法

判断 IPv4 字符串是否合法:四段、ASCII 数字、单个 0 可用但拒绝多位前导零,每段 0–255。

解题切入:IPv4 文本校验先拆四段,再检查 ASCII 数字、非空、前导零与 0..255;保留地址/CIDR 不属于原帖明确规则。

阅读这道题的独立深文 →
OOD Coding · 19

算式模式匹配忽略数字值和长度,但保留运算符结构

算式模式匹配忽略数字值和长度,但保留运算符结构;1+1=2 与 2+3=100 属同模式。

解题切入:数字算式模式以连续数字为单个 # token,保留运算符顺序;1+1=2 与 2+3=100 同形,不检查值相等或算术真值。

阅读这道题的独立深文 →
Coding · 20

实现 TTL Cache 的 get/put,先定义到期端点、覆盖写、空值命中与懒清理

实现 TTL Cache 的 get/put,先定义到期端点、覆盖写、空值命中与懒清理。

解题切入:TTL Cache 先约定 [写入,到期) 边界与 get 返回;惰性过期键可能占内存,覆盖写和并发删除要注意版本。

阅读这道题的独立深文 →
Phone Screen Coding · 21

实现 O(1) get/put 的 LRU Cache

实现 O(1) get/put 的 LRU Cache:哈希表加双向链表;追问 TTL、并发与分布式范围。

解题切入:LRU 用哈希表定位节点、双向链表头为最近使用/尾为最久未用;命中和覆盖写均移动到头,逐出须同步删哈希键。

阅读这道题的独立深文 →
Azure Storage Phone Screen · 22

大文件无序块记录按 (size,checksum) 去重并写唯一块文件

大文件无序块记录按 (size,checksum) 去重并写唯一块文件;16GB 内存下计算精确冗余率。

解题切入:Azure 块去重按源帖的 (大小,校验码) 作为内容键,地址可不同;16GB 是否容得下取决于不同键数量,超限用稳定哈希外部分区。

阅读这道题的独立深文 →
OOD / System Design · 23

在线架构图编辑器如何表示圆形、箭头、文字

在线架构图编辑器如何表示圆形、箭头、文字;支持移动单个图形和嵌套分组。

解题切入:架构图分组用树形父子关系和局部变换,移动组改父变换,箭头绑定端点按目标世界坐标重算;需防组环路。

阅读这道题的独立深文 →
Full-stack LLD · 24

设计 DNS 查询服务

设计 DNS 查询服务:区分递归/权威角色、上游负载均衡与同时受 TTL 和 LRU 控制的缓存。

解题切入:DNS LLD 先确认递归/权威角色;缓存 TTL 管正确性、LRU 管容量,上游 TLD 选择需健康检查和重试预算。

阅读这道题的独立深文 →
Azure VO Coding · 25

大文件商铺地址与经纬度校验

大文件商铺地址与经纬度校验:按规范化地址复用昂贵 API 结果,逐行比较坐标。

解题切入:昂贵地理编码 API 按保守规范化的地址四元组去重调用,再把返回坐标与每行坐标逐一比较;API 失败不能当成坐标错误。

阅读这道题的独立深文 →
Azure HM Coding · 26

把无重复、取值 0..32000 的整数通过 getNum 读取并有序 PutNum 输出

把无重复、取值 0..32000 的整数通过 getNum 读取并有序 PutNum 输出;用 4,001 字节位图。

解题切入:0..32000 无重复整数可用 32001 bit=4001 byte 位图,先读完置位再从 0 扫到 32000 输出;EOF helper 口径须问。

阅读这道题的独立深文 →
Azure VO System Design · 27

仅给两节点和 read_byte/write_byte,先澄清 RAID0/镜像、写确认、单节点故障与恢复语义

仅给两节点和 read_byte/write_byte,先澄清 RAID0/镜像、写确认、单节点故障与恢复语义。

解题切入:双节点 RAID 的 read_byte/write_byte 先确认容量与容错目标;镜像强确认要求双副本持久,单节点故障后的降级写需 fencing/epoch。

阅读这道题的独立深文 →
Intern OA Coding · 28

给字符串返回出现次数最多的字符

给字符串返回出现次数最多的字符;同频与空输入规则须先约定。

解题切入:最高频字符先计数再按原输入扫描选最大;并列与空串原帖未说,训练版明确首次出现优先。

阅读这道题的独立深文 →
Intern OA Tree · 29

求树直径并返回所有可作为任意直径端点的节点

求树直径并返回所有可作为任意直径端点的节点;区别于只返回一对端点。

解题切入:树上所有直径端点可从任意点找端点 a,再找另一端 b;顶点 v 的 max(dist(v,a),dist(v,b)) 等于直径长度时可作端点。

阅读这道题的独立深文 →
OA Array · 30

给非递减数组、起点和 target,求从起点连续累加后总和严格小于 target 的最长前缀长度

给非递减数组、起点和 target,求从起点连续累加后总和严格小于 target 的最长前缀长度。

解题切入:非递减数组可含负数,局部前缀和先降后升;先找最小和位置,再在右侧非递减段二分最右 sum<target。

阅读这道题的独立深文 →
OA Number Theory · 31

N≤10^6,求正整数有序对满足 1/x+1/y=1/N! 的数量

N≤10^6,求正整数有序对满足 1/x+1/y=1/N! 的数量;化为 (x−N!)(y−N!)=(N!)²。

解题切入:1/x+1/y=1/N! 化为 (x−M)(y−M)=M²;按有序对时答案是 ∏(2e_p+1),e_p 用勒让德公式求 N! 质因数指数。

阅读这道题的独立深文 →
VO Round 1 Coding · 32

两个非负整数字符串相乘,不能把完整字符串转 int/BigInteger

两个非负整数字符串相乘,不能把完整字符串转 int/BigInteger;处理进位、m+n 位和前导零。

解题切入:大数乘法用 m+n 位结果数组按 i+j/i+j+1 对齐,并逐位进位;完整操作数不能转 BigInteger。

阅读这道题的独立深文 →
VO Round 2 System Design · 33

URL shortener 支持创建/跳转/可选过期与统计

URL shortener 支持创建/跳转/可选过期与统计;1B 跳转/日、创建突增到 1000 QPS 时不丢请求。

解题切入:短链写峰值要持久队列+幂等 worker+重试/DLQ,create 已接收与短链已可跳转是不同状态;redirect 热路径靠近端缓存。

阅读这道题的独立深文 →
VO Round 2 Coding · 34

巨大的邮件日志以分号分 record,但引号或括号注释里的分号不是分隔符

巨大的邮件日志以分号分 record,但引号或括号注释里的分号不是分隔符;抽取去重邮箱。

解题切入:邮件日志只有引号/注释外的分号才分 record;邮箱语法原帖不完整,训练状态机限定 ASCII 简化格式。

阅读这道题的独立深文 →
VO Round 3 Coding · 35

点集轴对齐矩形面积

点集轴对齐矩形面积:原帖写 LC939 又写 Maximum,须核对最小/最大目标后用哈希表补齐第四角。

解题切入:矩形题原帖 LC939 与 Maximum 文字冲突,训练版按 LC939 最小轴对齐面积枚举对角点并查两角,真实极值目标待核。

阅读这道题的独立深文 →
VO Round 4 Coding · 36

Stock Price Fluctuation

Stock Price Fluctuation:同一时间戳价格可修正,支持 current/maximum/minimum。

解题切入:股票价格时间戳修正后 current 仍按最大时间戳取值,max/min 堆顶旧版本需按哈希表现价惰性删除。

阅读这道题的独立深文 →
MAI / AI Coding · 37

分块文本流遇 <END> 即停止输出,token 可跨 chunk

分块文本流遇 <END> 即停止输出,token 可跨 chunk;只暂存可能成为 token 的后缀并尽快返回安全前缀。

解题切入:流式 Stop Token 只缓冲可能组成 token 的前缀,用 KMP 状态跨块匹配并立刻输出不可能回退的安全文本。

阅读这道题的独立深文 →
MAI Onsite Coding · 38

多个 query 指定下标,求 nums 从该位置到末尾的最大数值出现次数,而非最高频数的频率

多个 query 指定下标,求 nums 从该位置到末尾的最大数值出现次数,而非最高频数的频率。

解题切入:后缀最大值次数从右向左维护 (largest,count):遇更大重置 1、相等加 1、更小不变,查询 O(1)。

阅读这道题的独立深文 →
SDE2 OA DP · 39

长度至多 5000 的非递减数组,每个值 1..5000 且数位和匹配 requiredSum[i]

长度至多 5000 的非递减数组,每个值 1..5000 且数位和匹配 requiredSum[i];计数对 10^9+7 取模。

解题切入:非递减数位和数组 dp[i][v] 由上一层所有 u≤v 的计数求和,逐值滚动前缀和降为 O(n×5000) 时间。

阅读这道题的独立深文 →
Principal AS Coding · 40

无空格字符串只能用给定词典词切分,返回一条还原句子或无解 None

无空格字符串只能用给定词典词切分,返回一条还原句子或无解 None。

解题切入:词典重建句子用后缀可达 DP 记录 choice,先验证后缀可达再选词;原帖只要求一条有效句子或 None。

阅读这道题的独立深文 →
Principal AS Coding · 41

把数组拼接 K 次,求非空连续子数组最大和

把数组拼接 K 次,求非空连续子数组最大和;比较单副本、跨两副本及正总和的中间整段。

解题切入:K 次拼接最大子段和比较单副本 Kadane 与最大后缀+最大前缀,只有总和为正时加入 K−2 个中间完整副本。

阅读这道题的独立深文 →
Principal AS Coding · 42

选最少种不同整数并删除各自全部出现,使删掉元素数至少达到数组一半

选最少种不同整数并删除各自全部出现,使删掉元素数至少达到数组一半。

解题切入:删至少半数元素且按不同值计成本时,按值频次降序取到 ceil(n/2),交换论证保证选值种数最少。

阅读这道题的独立深文 →
Principal AS ML Design · 43

HR attritiondata.tsv 用 Age、JobRole、MonthlyIncome、OverTime 等特征预测离职并分析因素

HR attritiondata.tsv 用 Age、JobRole、MonthlyIncome、OverTime 等特征预测离职并分析因素;控制时间泄漏与类别不平衡。

解题切入:员工离职预测先定预测时点和标签窗口,TSV 特征只能用当时可见快照;不平衡评估看 PR-AUC、top-k 与校准,相关解释不等于因果。

阅读这道题的独立深文 →
Onsite System Design · 44

商品分享短链的匿名点击如何计数、归因,并在第 100/1000 次有效点击时只发一次奖励?

商品分享短链的匿名点击如何计数、归因,并在第 100/1000 次有效点击时只发一次奖励?

解题切入:匿名商品分享链无法证明独立自然人;先按有效 clickId 原子分配序号与去重,第 100/1000 次奖励经 outbox 幂等发放。

阅读这道题的独立深文 →
PE65 Data System Design · 45

广告曝光数据库可能有错

广告曝光数据库可能有错:如何凭可信原始日志去重、校准、保留审计,再按广告商聚合?

解题切入:广告曝光校准需要独立可信来源;按 eventId 对账、版本化纠错,聚合支持迟到数据的撤销与重算。

阅读这道题的独立深文 →
SDE2 System Design with AI · 46

设计 Windows 多应用通知路由,处理应用身份、用户许可、重试去重、过期

设计 Windows 多应用通知路由,处理应用身份、用户许可、重试去重、过期;如何验证 AI 给出的方案?

解题切入:多应用通知先认证 appId,再按权限、勿扰、过期和配额路由;AI 建议用状态不变量和故障测试核验。

阅读这道题的独立深文 →
SDE2 Proximity Search · 47

外卖服务查找 10 公里内餐厅

外卖服务查找 10 公里内餐厅:空间索引如何保证不漏候选,再以精确距离和营业状态过滤?

解题切入:10 公里餐馆搜索枚举所有与查询圆相交的网格,再用最新坐标和球面距离精筛,不能只看固定邻格。

阅读这道题的独立深文 →
SDE II OOD · 48

十字路口交通灯用单一相位状态派生灯色,防相冲突方向同绿,并安全加入行人请求

十字路口交通灯用单一相位状态派生灯色,防相冲突方向同绿,并安全加入行人请求。

解题切入:交通灯以唯一相位状态派生颜色;相冲突方向之间经过黄灯和全红过渡,行人按钮先入队而不直接亮绿。

阅读这道题的独立深文 →
SDE II Entity Model · 49

只设计车库实体

只设计车库实体:Garage、Floor、Slot、Vehicle、ParkingSession 如何表达不同车型与车位的兼容?

解题切入:车库模型分开 Slot 能力、Vehicle 需求和 ParkingSession 占用事实;兼容策略独立于车型继承树,并发入场用唯一约束。

阅读这道题的独立深文 →
SWE System Design · 50

推荐用户本地体育球队

推荐用户本地体育球队:候选数据怎样产生、需要哪些用户信号、怎样排序并扩展各组件?

解题切入:本地球队推荐分球队主数据、地理/偏好召回、个性化排序和冷启动;新闻推荐是相近但目标不同的扩展。

阅读这道题的独立深文 →
MAI System Design · 51

多地域实时多人游戏怎样匹配玩家、选择通信协议、维护房间权威状态并满足低延迟和高可用?

多地域实时多人游戏怎样匹配玩家、选择通信协议、维护房间权威状态并满足低延迟和高可用?

解题切入:多人游戏把房间动作交给单一权威排序,匹配占位幂等;最终一致性用于跨房间资料,区域接管要用 epoch 防双主。

阅读这道题的独立深文 →
AI Infra System Design · 52

设计 Incident Agent

设计 Incident Agent:不同应急角色看哪些证据和摘要,如何防越权、滥用并扩展高峰处理?

解题切入:Incident Agent 在检索前和工具调用前都按角色授权,证据带来源;日志文本视为不可信输入,高风险修复须人审。

阅读这道题的独立深文 →
Azure System Design · 53

资源数据库变更后发通知,再查询并保存 diff

资源数据库变更后发通知,再查询并保存 diff:怎样保证版本顺序、去重、重试与缺口对账?

解题切入:Azure 资源变更通知应源自 outbox/CDC,并按资源版本连续保存 diff;乱序、重复和历史过期分别标记与恢复。

阅读这道题的独立深文 →
AI Infra Coding / Design · 54

LLM 前的 SingleFlight 如何合并同键并发请求?与不同键的微批处理如何分开,取消和失败怎样传播?

LLM 前的 SingleFlight 如何合并同键并发请求?与不同键的微批处理如何分开,取消和失败怎样传播?

解题切入:SingleFlight 只把同键飞行中的请求合并成一次上游调用;不同键微批另做,授权范围、取消、异常和 Future 清理要明确。

阅读这道题的独立深文 →
Azure Coding / Scale · 55

实现限流器并扩展到 100K QPS

实现限流器并扩展到 100K QPS:先区分总流量与单热键,再讨论令牌桶、分片和全局额度。

解题切入:100K QPS 限流先区分总量与单热键;令牌桶同键更新必须原子,全局严格配额与多网关本地 lease 存在延迟取舍。

阅读这道题的独立深文 →
OA Coding · 56

数组每个元素能否恰好配成同值的两两一组?证明每个值出现偶数次的充要性

数组每个元素能否恰好配成同值的两两一组?证明每个值出现偶数次的充要性。

解题切入:数组全员同值成对当且仅当每个值出现偶数次;奇频集合遍历时翻转成员,末尾为空即成功。

阅读这道题的独立深文 →
Copilot Chatbot Coding · 57

二值岛屿网格最多新增一块陆地,怎样在 O(RC) 时间求最大岛面积并避免相同岛重复累加?

二值岛屿网格最多新增一块陆地,怎样在 O(RC) 时间求最大岛面积并避免相同岛重复累加?

解题切入:补一格陆地最大岛先标每个原岛的 id 和面积,再枚举水格的四邻不同 id;同一岛不可重复加面积。

阅读这道题的独立深文 →
Phone Screen Coding · 58

求最长回文子序列长度

求最长回文子序列长度:区分不连续子序列与子串,用区间 DP 推导两端转移。

解题切入:最长回文子序列用 dp[l][r] 表示区间最优,两端相等取内部+2,否则舍一端取最大;不要求连续。

阅读这道题的独立深文 →
Hiring Event LLD · 59

购物车结算多种折扣怎样建模资格、互斥与叠加次序,并精确分摊金额?

购物车结算多种折扣怎样建模资格、互斥与叠加次序,并精确分摊金额?

解题切入:购物车折扣把资格规则与叠加策略分开;金额用整数或 Decimal,行级分摊与报价版本让支付和退款可追溯。

阅读这道题的独立深文 →
Hiring Event System Design · 60

电影院选座购票如何暂锁座位、支付出票、处理过期释放与重复回调?

电影院选座购票如何暂锁座位、支付出票、处理过期释放与重复回调?

解题切入:电影票按 (场次,座位) 原子暂锁;过期回收带版本核验,支付回调幂等且付款成功但锁失效要补偿。

阅读这道题的独立深文 →
Cloud Service System Design · 61

用户登录云服务后主页怎样聚合资源,同时保证租户级鉴权、权限撤销和审计?

用户登录云服务后主页怎样聚合资源,同时保证租户级鉴权、权限撤销和审计?

解题切入:云服务首页在服务端逐资源授权,缓存带租户和权限版本;审计记录主体、资源、决定与请求链路。

阅读这道题的独立深文 →
VO System Design · 62

大规模软件发布怎样分环灰度、控制并发、监测业务健康,并在版本或数据迁移出错时回滚?

大规模软件发布怎样分环灰度、控制并发、监测业务健康,并在版本或数据迁移出错时回滚?

解题切入:大规模软件 rollout 以不可变版本和故障域分环发布,放量取决于健康和业务护栏;回滚必须考虑 schema 兼容。

阅读这道题的独立深文 →
Word Principal AS Case Study · 63

LLM 生成内容不符合 Word 文档格式时,怎样用结构化约束、校验、局部修复与分层评估校准?

LLM 生成内容不符合 Word 文档格式时,怎样用结构化约束、校验、局部修复与分层评估校准?

解题切入:Word LLM 格式校准先定义结构化文档契约,生成后验证并局部修复;区分结构通过、内容保真与视觉可用。

阅读这道题的独立深文 →
Outlook Principal AS Case Study · 64

邮件历史展示顺序造成点击偏差时,怎样去偏、个性化排序并评估摘要的事实正确性?

邮件历史展示顺序造成点击偏差时,怎样去偏、个性化排序并评估摘要的事实正确性?

解题切入:Outlook 邮件优先级需记录旧位置和曝光概率,避免把低位低点击学成低重要性;摘要另测关键事实遗漏。

阅读这道题的独立深文 →
Copilot Search Case Study · 65

向量语义搜索如何优化切块、混合召回、重排和评估,同时保证文档权限过滤不漏?

向量语义搜索如何优化切块、混合召回、重排和评估,同时保证文档权限过滤不漏?

解题切入:Copilot 语义搜索结合词法与向量候选、授权过滤和重排;优化 ANN 延迟时同步量召回损失和引用正确性。

阅读这道题的独立深文 →
Copilot Alignment Case Study · 66

偏好对齐的监督示范、偏好优化和线上反馈各有什么数据、成本与偏差取舍?

偏好对齐的监督示范、偏好优化和线上反馈各有什么数据、成本与偏差取舍?

解题切入:偏好对齐比较 SFT、奖励模型/策略优化与直接偏好优化的数据需求、代理偏差和成本,线上反馈需去展示偏差。

阅读这道题的独立深文 →
Copilot Intent System Design · 67

根据用户正在输入的前缀推断任务意图,而非补全文本

根据用户正在输入的前缀推断任务意图,而非补全文本;如何处理不确定性、旧预测与误触发?

解题切入:输入意图理解用当时已输入的前缀训练与评估;低置信返回 unknown,异步预测按版本丢弃旧结果。

阅读这道题的独立深文 →
HackerRank OA DP · 68

两个数组同选 K 个下标,最大化所选两组和的较小者

两个数组同选 K 个下标,最大化所选两组和的较小者;用选中数和第一组和做稀疏 DP。

解题切入:双数组同选 K 下标以 (已选数,第一组和) 为 DP 键,保留第二组最大和;状态数依值域而变,原帖未给上界。

阅读这道题的独立深文 →
Azure VO Graph · 69

无向单环图中求每个点到环的最短距离

无向单环图中求每个点到环的最短距离:如何剥叶找全环,再多源 BFS?

解题切入:单环图持续剥掉度为 1 的树枝,剩余环点全作多源 BFS 的 0 层,线性求每点到环距离。

阅读这道题的独立深文 →
MAI MTS Coding · 70

对有向依赖图做拓扑排序并输出一个合法顺序

对有向依赖图做拓扑排序并输出一个合法顺序;如何同时判定有环?

解题切入:Kahn 拓扑排序每次移除零入度点,输出 n 个则顺序合法,否则余图有环;并列顺序原帖未指定。

阅读这道题的独立深文 →
MAI MTS System Design · 71

设计直播评论系统

设计直播评论系统:热点房间如何分发给大量观众、保留房间顺序并解释消息队列选型?

解题切入:直播评论的持久写入与观众扇出分离,房间序号、热点分区、审核撤销和慢客户端背压要单独设计。

阅读这道题的独立深文 →
Event Onsite System Design · 72

ETL Job Scheduler 如何按 DAG 触发、让 worker 领取租约,并在重试和回填时保证输出可追溯?

ETL Job Scheduler 如何按 DAG 触发、让 worker 领取租约,并在重试和回填时保证输出可追溯?

解题切入:ETL Scheduler 以 DAG 和 runId 管依赖,worker 领取租约,输出先临时写再原子提交 manifest;补数用新版本。

阅读这道题的独立深文 →
AS / AS Intern ML Coding · 73

手写 K-Means

手写 K-Means:最近中心分配、均值更新、空簇处理和终止条件分别是什么,复杂度如何算?

解题切入:K-Means 每轮先按平方欧氏距离选最近中心,再求各簇均值;需定义初始化、空簇、平局和停止规则,成本 O(Tnkd)。

阅读这道题的独立深文 →
Hiring Event Coding · 74

网格 Number of Islands 如何按四邻接数连通分量,迭代 DFS 怎样避免重复计数?

网格 Number of Islands 如何按四邻接数连通分量,迭代 DFS 怎样避免重复计数?

解题切入:岛屿数量对每块未访陆地启动一次四邻 DFS/BFS;它和补一格后最大岛面积是不同目标。

阅读这道题的独立深文 →
VO Coding · 75

BST 两节点 LCA 怎样按值域分叉找

BST 两节点 LCA 怎样按值域分叉找;若不是 BST,怎样按节点身份在普通二叉树求 LCA?

解题切入:BST LCA 沿数值分叉点向下查;普通二叉树改后序汇总两个目标是否存在,重复值要按节点身份判断。

阅读这道题的独立深文 →
VO Matrix · 76

3×3 数字九宫格旋转 180° 后是什么

3×3 数字九宫格旋转 180° 后是什么:坐标如何从 (r,c) 映射到 (2−r,2−c)?

解题切入:3×3 旋转 180° 映射 (r,c)→(2−r,2−c),等价于反转行顺序再反转每行,中心不变。

阅读这道题的独立深文 →
Event Onsite Coding · 77

按滑动时间窗实现 allow(key,now)

按滑动时间窗实现 allow(key,now):端点、拒绝是否计数、同 key 并发与多实例状态如何定义?

解题切入:精确滑动窗 allow 用每 key 的已放行时间队列,移除 t≤now−W;同 key 并发须原子更新,多实例另需共享配额。

阅读这道题的独立深文 →
Event Onsite Coding · 78

15-puzzle 到目标局面最少多少步

15-puzzle 到目标局面最少多少步:怎样先判奇偶可达,再选 BFS、A* 或 IDA*?

解题切入:15-puzzle 的完整 4×4 状态空间巨大,先判奇偶可达;浅层可 BFS,通用最短路用可采纳 Manhattan 启发式 A*/IDA*。

阅读这道题的独立深文 →
AI Coding · 79

可恢复 DataLoader 应保存哪些数据版本、epoch 顺序、确认游标和随机状态,预取 batch 能否算已消费?

可恢复 DataLoader 应保存哪些数据版本、epoch 顺序、确认游标和随机状态,预取 batch 能否算已消费?

解题切入:可恢复 DataLoader 的游标应指已确认训练 batch 而非已预取 batch;数据版本、采样顺序、模型/优化器状态需一致发布。

阅读这道题的独立深文 →
AI Data Practice · 80

OCR 数据用于 LLM 前如何清洗阅读顺序、乱码、近重复和隐私,并避免训练/评估文档泄漏?

OCR 数据用于 LLM 前如何清洗阅读顺序、乱码、近重复和隐私,并避免训练/评估文档泄漏?

解题切入:OCR 数据清洗除乱码还要检查双栏顺序、表格和近重复;按文档划分评估集并保留页码/原图可追溯性。

阅读这道题的独立深文 →
AI Model Design · 81

从零设计视频 VLM 的数据、训练和评估

从零设计视频 VLM 的数据、训练和评估:如何保留时序信息并证明模型不是只靠静态帧或字幕猜?

解题切入:视频 VLM 的数据/训练/评估应保留时间戳与跨帧关系,用单帧和字幕基线及顺序打乱对照验证时序能力。

阅读这道题的独立深文 →
AS2 ML Fundamentals · 82

LayerNorm 与 BatchNorm 分别沿哪些轴统计?训练与推理、小 batch 时有何差别?

LayerNorm 与 BatchNorm 分别沿哪些轴统计?训练与推理、小 batch 时有何差别?

解题切入:BN 对 batch 维按特征统计并在推理用运行统计;LN 对单样本特征维统计,比较时先写明张量形状。

阅读这道题的独立深文 →
AS2 ML Fundamentals · 83

L1、L2 正则项及 Dropout、Early Stopping 各如何控制过拟合,代价和失效条件是什么?

L1、L2 正则项及 Dropout、Early Stopping 各如何控制过拟合,代价和失效条件是什么?

解题切入:L1 倾向稀疏、L2 平滑缩权,Dropout 和早停是不同机制;正则强度要在验证集调,不能用测试集反复挑。

阅读这道题的独立深文 →
AS2 CTR Modeling · 84

CTR 预测怎样定义曝光与点击标签、截断特征时点、处理展示位置偏差并评估概率校准?

CTR 预测怎样定义曝光与点击标签、截断特征时点、处理展示位置偏差并评估概率校准?

解题切入:CTR 预测必须从曝光定义标签和当时可见特征;历史排序位置影响点击,离线看校准与分层,线上看护栏。

阅读这道题的独立深文 →
AS2 ML Evaluation · 85

正例稀少时如何选择采样、类别权重和阈值,并在真实基率下报告 PR-AUC、precision/recall?

正例稀少时如何选择采样、类别权重和阈值,并在真实基率下报告 PR-AUC、precision/recall?

解题切入:类别不平衡训练可采样/加权,但验证须保留真实基率;用 PR-AUC、top-k 和校准选阈值而非只看 accuracy。

阅读这道题的独立深文 →
VO Coding · 86

O(1) 额外空间判断单链表回文后,怎样把反转过的后半链恢复给调用方?

O(1) 额外空间判断单链表回文后,怎样把反转过的后半链恢复给调用方?

解题切入:回文链表先反转后半比较,无论是否匹配都再反转恢复 next 指针;空/奇偶长度分别处理。

阅读这道题的独立深文 →
VO Tree Coding · 87

二叉树锯齿形层序遍历怎样用 BFS 与双端队列交替输出,双栈方案有什么取舍?

二叉树锯齿形层序遍历怎样用 BFS 与双端队列交替输出,双栈方案有什么取舍?

解题切入:锯齿层序以 BFS 固定每层长度,子节点仍按左右入队;只在层结果的头/尾插入值切换展示方向。

阅读这道题的独立深文 →
Core AI Phone Screen · 88

字符串 Subsets 变体要求 sorted output

字符串 Subsets 变体要求 sorted output:如何保留原字符顺序、去重并定义空子集?

解题切入:字符串 Subsets 的训练版保留原下标顺序、结果去重再字典序排序;先排序输入字符会把 'ba' 错变 'ab'。

阅读这道题的独立深文 →
Hiring Event VO Coding · 89

给字符串列表和目标字符串,返回所有 anagram

给字符串列表和目标字符串,返回所有 anagram:字符多重集键如何处理重复字母和重复词?

解题切入:目标词 anagram 需比较字符频次而非字符集合;列表中重复词和原顺序是否保留须先定合同。

阅读这道题的独立深文 →
Hiring Event System Design · 90

工单平台如何关联同一用户的相关 ticket、其所属系统,并查询故障时段的系统历史状态?

工单平台如何关联同一用户的相关 ticket、其所属系统,并查询故障时段的系统历史状态?

解题切入:支持工单按租户/用户关联历史并链接系统 ID;查询故障时状态要取时间窗前基线和窗口内事件,不能用当前状态代替。

阅读这道题的独立深文 →
SDE2 OS / C++ · 91

如何实现 Linux cp 的普通文件复制

如何实现 Linux cp 的普通文件复制:短写、源目标同 inode、失败清理及符号链接策略怎样处理?

解题切入:Linux cp 的普通文件复制要循环处理短读短写,先核验源目标文件身份,失败不发布半成品;高级选项需明确。

阅读这道题的独立深文 →
VO Graph Coding · 92

从图的 0 点到各点最短距离

从图的 0 点到各点最短距离:所有边权为 1 时 BFS,变成非负带权后如何改用 Dijkstra?

解题切入:0 到各点最短路在单位权下用 BFS;非负带权改 Dijkstra,若负权存在需另选算法,原帖未给方向和符号。

阅读这道题的独立深文 →
Phone Screen Coding · 93

输出 1 到 200 的全部质数

输出 1 到 200 的全部质数:为什么 1 不是质数,埃氏筛为何从 p² 标合数?

解题切入:1..200 质数用埃氏筛,0/1 先排除,从 p² 标到 200;推广 N 时成本 O(N log log N)。

阅读这道题的独立深文 →
Event Onsite API Design · 94

带 idempotency key 的 API 如何处理同键并发、同键不同 payload、执行中重试和成功响应重放?

带 idempotency key 的 API 如何处理同键并发、同键不同 payload、执行中重试和成功响应重放?

解题切入:幂等 Key API 要保存作用域、请求指纹、进行中/完成状态和原响应;唯一约束防同键并发双执行。

阅读这道题的独立深文 →
Azure REST Design · 95

为 JSON 文件设计 REST API

为 JSON 文件设计 REST API:怎样做条件写版本、权限、JSON 验证与对象存储发布?

解题切入:JSON 文件 REST API 用稳定资源 ID、鉴权和 ETag 条件写;对象正文与元数据非同事务时先暂存再发布 manifest。

阅读这道题的独立深文 →
L61/L62 OA Graph · 96

带权图中每个点走最短回路返回自身,无回路返回 0

带权图中每个点走最短回路返回自身,无回路返回 0:如何用起点最短路加最后一条入边?

解题切入:逐点最短回路不能把 dist(s,s)=0 当答案;有向正权训练版枚举最后一条入边 u→s,取 dist_s[u]+w。

阅读这道题的独立深文 →
NG Coding · 97

LC3 最长无重复连续子串怎样用最近字符位置维护滑动窗口,left 为什么不能倒退?

LC3 最长无重复连续子串怎样用最近字符位置维护滑动窗口,left 为什么不能倒退?

解题切入:LC3 无重复子串滑窗记录字符最近下标,重复时 left 只向右推进;原帖仅给题名,变体未知。

阅读这道题的独立深文 →
NG Coding · 98

My Calendar I 怎样按半开区间预约,二分找到插入位后只查前后邻居?

My Calendar I 怎样按半开区间预约,二分找到插入位后只查前后邻居?

解题切入:My Calendar I 训练版用半开区间;二分查邻居只 O(log n),Python list 插入仍 O(n)。

阅读这道题的独立深文 →
VO Coding · 99

Word Ladder II 怎样用逐层 BFS 保留所有最短路径父节点,并回溯输出全部路径?

Word Ladder II 怎样用逐层 BFS 保留所有最短路径父节点,并回溯输出全部路径?

解题切入:Word Ladder II 须逐层记录所有最短父边,整层结束后才删已发现词,回溯输出可能指数多条路径。

阅读这道题的独立深文 →
AS2 Coding · 100

LC149 一条直线最多点数如何用 gcd 规范化斜率,处理竖线、反方向和重复点?

LC149 一条直线最多点数如何用 gcd 规范化斜率,处理竖线、反方向和重复点?

解题切入:LC149 斜率用 dx/dy 的整数 gcd 约分和统一符号键,重复点单独计数,避免浮点与竖线。

阅读这道题的独立深文 →
Hiring Event Coding · 101

()[]{} 三类括号如何用栈判断匹配顺序,为什么数量相等仍可能非法?

()[]{} 三类括号如何用栈判断匹配顺序,为什么数量相等仍可能非法?

解题切入:括号匹配的栈保存尚未闭合的开括号;闭括号必须匹配栈顶,最终栈为空,数量相等仍不足以保证嵌套合法。

阅读这道题的独立深文 →
MAI Auth Coding · 102

JWT 的 Base64url 解码与验签有什么区别?三段 JWS 如何解析,并为何不能把可读 Claims 当授权?

JWT 的 Base64url 解码与验签有什么区别?三段 JWS 如何解析,并为何不能把可读 Claims 当授权?

解题切入:JWT Base64url 解码只让 header/payload 可读;用于认证仍需按可信算法/密钥验 JWS 签名和校验 iss/aud/exp 等。

阅读这道题的独立深文 →
System Design · 103

多副本KV如何定义replication、quorum和坏点处理?读写交集为何不自动保证线性一致?

多副本KV如何定义replication、quorum和坏点处理?读写交集为何不自动保证线性一致?

解题切入:KV quorum交集只提供条件,强一致另需提交/读屏障/成员协议;ACK必须覆盖规定故障域持久性。

阅读这道题的独立深文 →
System Design / Diagnosis · 104

分布式系统性能问题从哪里入手,怎样区分排队与服务、发现热点并以对照验证根因?

分布式系统性能问题从哪里入手,怎样区分排队与服务、发现热点并以对照验证根因?

解题切入:性能先给症状与负载基线,按请求链路拆排队/服务,切片和可证伪实验定位,验证尾延迟与成本。

阅读这道题的独立深文 →
System Design · 105

百万设备telemetry如何同时支持实时与批量分析,处理去重、迟到、重放、版本发布和长期保留?

百万设备telemetry如何同时支持实时与批量分析,处理去重、迟到、重放、版本发布和长期保留?

解题切入:Telemetry用设备/boot/sequence去重,原始事实层支撑重放;流式和批量输出版本发布,迟到结果明确修正。

阅读这道题的独立深文 →
Streaming / Coding · 106

筛选error日志,维护每service最近W秒错误数与moving average并alarm

筛选error日志,维护每service最近W秒错误数与moving average并alarm;定义分母、窗口、闲时过期和迟到合同。

解题切入:滑窗队列只支持有序时间,查询也清理过期;count/W为每秒速率,errors/total则是另一合同。

阅读这道题的独立深文 →
Concurrency · 107

共享存储索引如何取舍粗锁、细锁和lock-free?先定义复合操作不变量,再讨论争用、CAS和内存回收

共享存储索引如何取舍粗锁、细锁和lock-free?先定义复合操作不变量,再讨论争用、CAS和内存回收。

解题切入:锁粒度先看不变量与争用,分片复合操作有锁顺序,CAS仍需ABA/内存回收与进展合同。

阅读这道题的独立深文 →
Behavioral · 108

最近的一次创新怎样证明问题、本人试验、实际采用与净价值,适用边界是什么?

最近的一次创新怎样证明问题、本人试验、实际采用与净价值,适用边界是什么?

解题切入:创新用问题和常规替代起步,给本人试验、采用和维护成本;工具新颖不等于实际价值。

阅读这道题的独立深文 →
Storage Internals · 109

metadata与data分离后怎样定义写入ACK、manifest发布、版本读取、crash recovery和孤儿块清理?

metadata与data分离后怎样定义写入ACK、manifest发布、版本读取、crash recovery和孤儿块清理?

解题切入:先持久数据块再原子发布manifest,版本读不混块;恢复覆盖两层,GC保护活跃上传与旧读者。

阅读这道题的独立深文 →
ML System Design · 110

Microsoft RAG架构与优化

Microsoft RAG架构与优化:召回、权限和延迟逐层验证:先定位检索或生成瓶颈,再改变索引、模型与上下文策略。

解题切入:文档版本、ACL和source offsets贯穿解析/chunk/index,query走词法+向量召回,rerank再将有出处证据给generator。引用前重新鉴权,不让模型负责访问控制。

阅读这道题的独立深文 →

Next Step

把题目放回面试流程

题目只是准备的一部分;按公司攻略核对轮次、岗位差异和常见失分点。

查看 Microsoft 面试全攻略 →
✓已复制微信号!