Question Study

Google 面试题专题

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

Reading Guide

如何使用这份题目清单

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

先分岗位

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

合并同题变体

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

练习顺序

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

Deduplicated Question Map

按考点去重的代表题

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

Coding · 01

给定 grid,每个格子有高度,求从左上到右下的一条路径,使路径上遇到的最大高度尽可能低,并解释为什么二分或 Dijkstra 成立

给定 grid,每个格子有高度,求从左上到右下的一条路径,使路径上遇到的最大高度尽可能低,并解释为什么二分或 Dijkstra 成立。

查看上方解题路线 ↑

阅读这道题的独立深文 →
Data Structure · 02

实现 CoolMap

实现 CoolMap:put(key, value)、get(key)、putAll(value) 都要求 O(1)。先实现这三个接口;训练追问可再讨论 delete 与历史时间点读取会如何改变数据结构。

解题切入:用全局递增时间戳保存 putAll 的值与时间;get 比较单 key 写入时间和全局写入时间,较新者生效。delete 需单独定义。

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

最长同频子串

最长同频子串:出现过的字符次数全部相等:返回最长连续子串的位置,未出现的字符不参与计数。

解题切入:固定左端点,逐一扩展右端点,并维护当前窗口频次。只有所有正频次数值相等时才更新答案。零频字符不进入表。

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

切木头最大等长段

切木头最大等长段:在答案值域上二分:不能拼接木头,切出至少K段,求正整数段长最大值。

解题切入:验证候选L的可行性:第w根最多切floor(w/L)段,总数≥K即足够。

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

多个已排序区间流求并集

多个已排序区间流求并集:堆归并与在线合并:每个流按起点非降,只保存各流一个区间,输出规范化并集。

解题切入:把各流头区间放进按起点排序的最小堆,每弹一个只从同一流补一个。所有未读元素不会早于该流头,因此全局弹出顺序正确。

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

嵌套整数深度加权

嵌套整数深度加权:结构遍历与字符串解析:顶层整数权重1,每嵌套一层加1,处理负数、多位数及语法错误。

解题切入:已有嵌套结构时DFS(value,depth)累加整数×depth;BFS逐层对整数求和后乘层号也成立。

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

分别排序两段后整体有序

分别排序两段后整体有序:统计合法切点:切成两个非空连续段,各段独立排序,合并后要非降。

解题切入:左段内部和右段内部排序后必合法,唯一风险是跨段边界。边界合法当且仅当max(left)≤min(right)。

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

至多翻转一个数

至多翻转一个数:最小化数组总和绝对值:一个数x变为−x,总和从S变为S−2x,比较所有候选。

解题切入:先求总和S。不翻转的成本为|S|。每个位置翻转会删除原x并加上−x,变化−2x。

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

两端值相同的最大区间和

两端值相同的最大区间和:按端点值维护最小前缀:区间至少包含两个位置,数组允许负数,不能总选择最早同值。

解题切入:记P[j+1]为截至当前值的前缀和。以x为末端时,需要同值起点i的最小P[i],因为区间和=P[j+1]−P[i]。

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

字符串列表序列化

字符串列表序列化:长度前缀避免分隔符冲突:保留空字符串、数字、冒号和Unicode,不依赖特殊分隔符永不出现。

解题切入:每个字段编码为十进制长度、冒号、原样内容。读到冒号解析长度,再严格消费该长度的内容,下一字符即为下个字段头。

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

树上所有节点距离和

树上所有节点距离和:一遍子树统计,一遍换根:从一个根的答案出发,沿父子边用n−2×子树大小更新。

解题切入:从0构建parent/order/depth。sum(depth)是根0答案;逆序order累加子树size。使用显式遍历避免长链递归栈。

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

统一循环位移字符串分组

统一循环位移字符串分组:以首字符为基准归一化:每个字符同时在a..z上循环移动相同偏移,才属于同组。

解题切入:每个字符串生成key=((ord(c)−ord(first)) mod26)。整体加同一偏移会在相减时抵消。

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

父节点数组是否是一棵树

父节点数组是否是一棵树:单根、合法索引、全部可达:一个根并不足够,其他节点可能组成与根隔离的环。

解题切入:先检查类型与索引,再要求恰好一个−1。根据父数组构建children。

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

有符号数据流均值为S的最长区间

有符号数据流均值为S的最长区间:精确变换与前缀:将平均值约束化成零和,记录最早相同前缀。

解题切入:写S=p/q,将每个值变成qx−p。长度m区间的变换和为qΣx−mp,等于0恰好意味着均值p/q。

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

区间是否奇偶交替

区间是否奇偶交替:预计算相邻违规边:大量静态查询只检查区间内部相邻对,不算左边界之外。

解题切入:定义bad[i]为此前若干元素中的同奇偶相邻对累计数,示例bad[t]覆盖右端下标<t的违规边。

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

至少K种不同值的最短子数组

至少K种不同值的最短子数组:单调滑窗:达到K种后连续缩左,每次先记录候选再删除元素。

解题切入:右端扩张只会保持或增加不同值数,左端收缩只会保持或减少,因此满足≥K时可以尝试缩到最短。

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

打乱后的原数组与两倍数组

打乱后的原数组与两倍数组:支持负数和零的恢复:按绝对值消耗x与2x的计数,避免负数普通升序配错。

解题切入:非零x的两倍绝对值严格更大。按绝对值从小到大处理,当前未消费x不能是更小未处理数的两倍,因此必须作为原值,并消费2x。

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

棋子每次右跳三格

棋子每次右跳三格:最多能收集多少金币:同余类互不干扰,落点金币计一次,跳过的金币不计。

解题切入:每次+3保持下标mod3。因此分成三个独立线性轨道,每轨仅能向右移动一格。没有初始棋子左侧金币永不可达,这是上界。

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

两位数共同数字分组

两位数共同数字分组:统计全组共享的数字:要求存在同一数字出现在每个数里,重复位置可各自被选。

解题切入:分别统计0..9出现于多少输入数。一个数两位相同只贡献一次,比如55不能把5计两次。

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

最少插入括号使序列合法

最少插入括号使序列合法:贪心修复负前缀:只插入、不删除、不重排,最后补足未闭合左括号。

解题切入:维护未匹配左括号balance。遇(加1;遇)且balance>0则配掉一个。

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

网格每步恰好下降一

网格每步恰好下降一:最长路径的值域拓扑DP:相邻值必须差1,不能把任意严格下降路径当成同题。

解题切入:每条边严格降值,因此不会有环。先按值升序处理,低值格的最长后缀已计算。

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

动态正整数MEX

动态正整数MEX:find、fill、delete与扫描成本:维护集合里缺失的最小正整数,删除会让答案往回退。

解题切入:保持missing为最小不在集合的正整数。插入x后,只在missing被占时向前扫描直到空缺;其他插入不会改变答案。

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

餐厅候位

餐厅候位:按到达顺序找到首个能入座的队伍:支持加入、离开、按桌容量服务最早合适队伍。

解题切入:第一版用有序map保存ID→人数。join尾插、leave按ID删除,serve从最早开始扫描到首个合适组。

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

两人去同一目的地

两人去同一目的地:三组距离求最小共享路费用:A/B分别到某汇合点,之后共用一条路径到D,共享边只计一次。

解题切入:任取汇合点v,最低费用是distA[v]+distB[v]+distToD[v]。后项需从D在反向图跑Dijkstra,不是从D在原图求distD[v]。

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

选择利润后跳过指定位置

选择利润后跳过指定位置:逆序DP与负数合同:选第i项拿a[i]后到i+1+a[i],也可不选去i+1。

解题切入:每状态只有skip和take两条边,目标位置均>i,因此是DAG。逆序保证两种后继答案已知。

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

每日重复跨日任务

每日重复跨日任务:整周期负载加余段扫描:长任务跨多天,区分一次性时间线和每天新启动的周期实例。

解题切入:d=qP+r,稳态任意时刻有q个完整周期实例持续占用,加入baseline;余r分钟在周期圆环产生一个短弧。

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

所有±1等差好子数组的元素和

所有±1等差好子数组的元素和:线性累计结束贡献:好子数组的每步差都为+1或都为−1,求各子数组元素和再相加。

解题切入:维护ending_sum,表示全部以当前i结束的好子数组的元素和之和;总答案累加各ending_sum。

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

短信活跃用户

短信活跃用户:不同邻居去重、O(1)冠军与TopK:消息为无向关系,重复联系同一人不增加活跃度。

解题切入:邻接set将重复register幂等化。每条新关系只可能改变两端度数,其他人的排名不变。

阅读这道题的独立深文 →
System Design / 设计追问 · 29

书架与书签

书架与书签:按身份移动,删除时同步清理引用:设计add/remove/move和bookmark,让书的位置变化不破坏身份。

解题切入:bookId→节点哈希定位,双向链表保存顺序;插入到指定节点之前、删除、移到另一节点前均可O(1)改指针。首尾哨兵简化边界。

阅读这道题的独立深文 →
System Design / 设计追问 · 30

Android健身房心率监控

Android健身房心率监控:实时展示、离线补传与告警:约100名学员的设备上报,为教练提供状态和异常提示。

解题切入:设备上报绑定sessionId/traineeId/deviceId、seq、eventTime、值和质量状态,后端同时存receiveTime。seq去重,设备断连与低质量值有独立状态。

阅读这道题的独立深文 →
System Design / 设计追问 · 31

日历免打扰空闲区间

日历免打扰空闲区间:统一时区、裁剪窗口和取补集:给定忙碌/免打扰区间,列出查询窗口内全部可用时段。

解题切入:先过滤与查询窗无交集的区间,再裁剪端点到窗内。排序合并busy,使重叠和接触片段成为一段。

阅读这道题的独立深文 →
System Design / 设计追问 · 32

Street View车载图片上传

Street View车载图片上传:断点、鉴权与下游处理:网络中断、凭证风险和返回响应丢失时,保持图片任务可追踪。

解题切入:先创建uploadSession返回有期限的分片上传权限,绑定vehicle/session/object与大小范围。设备保存未完成清单和每片checksum;分片ACK后记本地状态,重连查询缺片。

阅读这道题的独立深文 →
System Design / 设计追问 · 33

百亿页面周期爬虫

百亿页面周期爬虫:按host礼貌调度与持久化frontier:面向搜索索引,支持周期重抓,暂不渲染JavaScript。

解题切入:frontier由URL状态表、优先候选队列、host可用时间堆构成。先按优先级选可抓URL,再由host串行/并发上限与nextAllowedTime约束实际发出。不能只用全局高优先队列压垮单站。

阅读这道题的独立深文 →
System Design / 设计追问 · 34

十万人内部文档搜索Agent

十万人内部文档搜索Agent:权限先行、引用可核对:RAG搜索的成本、延迟、规模与工具边界,需要同时说明。

解题切入:数据同步保存docId/version/tenant/ACL/更新时间,分块保留出处。检索在tenant/ACL过滤后做词法+向量召回,rerank与引用前再次核验;不依赖模型“别泄漏”的提示替代授权。

阅读这道题的独立深文 →
System Design / 设计追问 · 35

音乐推荐与LLM Agent

音乐推荐与LLM Agent:候选召回、排序和受控交互:先完成可评估推荐系统,再说明LLM能改变的交互与取舍。

解题切入:事件包括曝光、播放、skip、完播、收藏与上下文,保留曝光偏差;召回采用协同、内容、最近播放与热门等多路,再精排并重排多样性。

阅读这道题的独立深文 →
System Design / 设计追问 · 36

Agent按token计费限流

Agent按token计费限流:预留额度与实际消耗对账:并发生成前预留预算,结束后结算,不能只数请求。

解题切入:请求携带idempotencyKey,预算账本按租户原子reserve预计最大成本,成功才发生成;不足拒绝或降低输出上限。token bucket只控制速率,不自动守住日/月总预算。

阅读这道题的独立深文 →
System Design / 设计追问 · 37

每周优惠服务

每周优惠服务:活跃分页、个性排序与一次领取:多pipeline导入优惠,按浏览历史排名并允许每用户领取一次。

解题切入:导入先规范化sourceDealId、内容版本、时间与可用范围,幂等upsert,状态发布采用outbox驱动搜索/推荐索引更新。

阅读这道题的独立深文 →
System Design / 设计追问 · 38

CI/CD测试失败处理

CI/CD测试失败处理:有限重试、证据保留和智能通知:流水线失败不全是代码错误,区分确定失败、环境故障和flaky。

解题切入:job状态机区分QUEUED/RUNNING/PASS/FAIL/INFRA_ERROR/CANCELLED,attempt每次不同,artifact记录commit、镜像、随机种子、依赖和失败签名。

阅读这道题的独立深文 →
System Design / 设计追问 · 39

客服Agent转人工

客服Agent转人工:会话所有权、摘要与消息不断档:机器人与人工交接期间,避免双方同时作答或丢消息。

解题切入:请求转人工时原子改变会话状态并生成handoffId,Agent停止新工具动作;队列按优先级/技能/等待时间派单。已在飞行动作通过状态版本或取消令牌检查是否还能提交。

阅读这道题的独立深文 →
System Design / 设计追问 · 40

一个物理Timer实现多个逻辑Timer

一个物理Timer实现多个逻辑Timer:堆、重设与过期回调:物理set会覆盖旧任务,最早逻辑到期驱动下一次唤醒。

解题切入:最小堆存(deadline,seq,id,version),map保存逻辑状态。新最早deadline入堆时重设物理timer;删除用lazy无效项并在读取堆头时清理。

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

恰好一人在线的时间段

恰好一人在线的时间段:合并个人区间后扫事件:返回活跃人数恰为1的全部片段,不是所有有人在线的并集。

解题切入:每起点+1,终点−1,聚合同一时刻事件。排序后,处理时刻t的事件前,active适用于[last,t)。

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

右上、右、右下路径数

右上、右、右下路径数:滚动列DP与检查点分段:从左下到右下,每步列数加1,检查点按顺序经过。

解题切入:列严格递增,图为DAG。当前列行r的路径数等于前列r−1/r/r+1的计数和,边界缺项为0。

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

两个数组最小K个数对

两个数组最小K个数对:按行有序归并:每对由一个a位置与一个b位置组成,重复值位置仍分别计。

解题切入:固定a[i]后,a[i]+b[j]随j递增,形成一条有序行。堆只放每活跃行当前最小未读数对。

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

从组合数量DP恢复硬币面值

从组合数量DP恢复硬币面值:逐金额验证新增一币:明确是无序、无限重复组合,dp[0]=1,币值不重复。

解题切入:维护已识别小面值的组合dp。到金额v,尚未识别更大面值都不能凑v,所以ways[v]−dp[v]只能为0或1。

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

数组区间是否全唯一

数组区间是否全唯一:一次预处理,O(1)查询:保存每个右端对应的最早合法左端,查询只需比较边界。

解题切入:last[x]保存值x此前出现的最近下标。处理i时,所有以i结尾的唯一窗口左端必须>last[x]。

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

恰删一个元素后存在Pivot

恰删一个元素后存在Pivot:从保留的枢轴反推删值:允许负数,pivot左和等于右和,不能把删掉的位置当枢轴。

解题切入:枚举每个保留枢轴x,原左和L、右和R。若删左边值v,需要L−v=R,即v=L−R;删右边则v=R−L。

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

删除第二数组冲突项

删除第二数组冲突项:前K填满之前持续过滤:删除让后面的元素进入前K,不能只检查原来的前K。

解题切入:forbidden=set(list1[:K])。扫描list2,在填足K个保留项之前丢掉所有forbidden,其余保留并推进filled。

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

机器人重复消息过滤

机器人重复消息过滤:只更新最后展示时间:隐藏的接收消息不刷新10秒窗口,等号行为单独指定。

解题切入:map保存最后真正展示的时间;不存在键直接展示。存在则与last_shown比较,超过阈值才展示并更新。

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

加权不重叠工作

加权不重叠工作:按结束时间DP与二分前驱:选择任意工作子集,区间不重叠,利润和最大。

解题切入:按end排序,dp[i]表示前i项最优。当前任务take需加上所有end≤start的前驱前缀答案,skip为dp[i]。

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

屋顶漏洞最少整行整列木板

屋顶漏洞最少整行整列木板:二分图最小点覆盖:每个洞连接所在行和列,选行或列使所有洞被覆盖。

解题切入:建立二分图,行是左点、列是右点,每洞是一条边。选一块板等于选一个点,洞被补等于相应边至少一端被选。

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

为什么选择Google?若这次未通过怎么办?

为什么选择Google?若这次未通过怎么办?:把动机拆成目标产品/问题、自己能贡献的技术、希望成长的能力。

解题切入:把动机拆成目标产品/问题、自己能贡献的技术、希望成长的能力。公司名和声誉不是贡献证据;岗位与团队还不确定时说明假设,避免声称已经知道内部职责。未通过时给可执行反馈复盘和能力训练计划,不保证下次结果。

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

最引以为豪的项目

最引以为豪的项目:区分个人决定与团队成绩:先选一项自己能证明的决定,说明问题与约束,再讲两个可选方案和取舍,最后交代团队贡献与自己贡献。

解题切入:先选一项自己能证明的决定,说明问题与约束,再讲两个可选方案和取舍,最后交代团队贡献与自己贡献。难度不只由代码量决定,可以是减少用户失败或让其他团队能独立交付。

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

失败经历与重来一次

失败经历与重来一次:当时判断为何合理,后来漏了什么:先定义失败的验收标准,区分结果、自己的决策及外部变化。

解题切入:先定义失败的验收标准,区分结果、自己的决策及外部变化。解释当时证据为何支持方案,再承认被漏看的信号;改进要落到新的检测、决策或协作机制。

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

目标和信息模糊时如何推进项目

目标和信息模糊时如何推进项目:先列已知用户目标、未知事实和不可逆决定,按对方案影响排序。

解题切入:先列已知用户目标、未知事实和不可逆决定,按对方案影响排序。用小实验/样本访谈或原型降低关键不确定性,写出暂定合同、验收标准与下一次决策时间,避免无限等所有信息齐全。

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

最难接受的反馈

最难接受的反馈:先理解证据,再改变可观察行为:复述反馈以确认理解,问具体行为与影响,区分表达方式、技术分歧和事实指控。

解题切入:复述反馈以确认理解,问具体行为与影响,区分表达方式、技术分歧和事实指控。可以不同意部分结论,但先找自己可改变的行为,约定复查方式。

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

与难合作的同事共事

与难合作的同事共事:从具体阻碍找到可执行协议:描述可观察行为,不给人贴“懒/坏”标签。

解题切入:描述可观察行为,不给人贴“懒/坏”标签。先了解目标、容量和沟通偏好,建立交付边界、响应时限与升级路径;若反复阻断项目,则带事实向负责人求助。

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

团队技术意见分歧

团队技术意见分歧:用共同验收标准比较方案:先确认双方目标一致及真正分歧:成本、可靠性、交付期限或维护能力。

解题切入:先确认双方目标一致及真正分歧:成本、可靠性、交付期限或维护能力。列同一负载与故障假设下的方案表,设计能分辨差异的小实验,确定decision owner并记录结果。

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

任务超出预期

任务超出预期:排序交付,也追溯为何冲突未提前发现:盘点任务影响、承诺、依赖、截止时间及延期成本;和owner商议删范围、移日期或加资源。

解题切入:盘点任务影响、承诺、依赖、截止时间及延期成本;和owner商议删范围、移日期或加资源。回答不止“先做紧急”,还需复盘为何没有早暴露优先级冲突。

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

项目中途改方向

项目中途改方向:技术可行还需验证用户影响:说明触发改向的新证据、继续原路的成本和替代选项。

解题切入:说明触发改向的新证据、继续原路的成本和替代选项。技术团队验证性能/复杂度,PM验证需求,自己也参与可测用户指标与数据分析,不能完全把用户影响交给PM。

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

学习他人后改变观点

学习他人后改变观点:讲清新证据怎样推翻旧判断:选一个真实持有的观点,给它成立的假设;说明他人证据、实验或经验如何改变某条假设,而不是简单“我听从更资深的人”。

解题切入:选一个真实持有的观点,给它成立的假设;说明他人证据、实验或经验如何改变某条假设,而不是简单“我听从更资深的人”。保留旧观点在其他场景仍适用的边界。

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

帮助同事成长

帮助同事成长:技术辅导与职业目标都要问到:先问被辅导者目标与已有能力,不默认对方只缺代码技巧。

解题切入:先问被辅导者目标与已有能力,不默认对方只缺代码技巧。把目标变成可练习任务、观察反馈与逐步独立责任,提供机会但不替其完成全部工作。

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

帮助新人融入团队

帮助新人融入团队:参与机会、信息入口与反馈安全:先查新人最缺的信息与参与机会,给清晰文档/伙伴/小任务,不把融入等同吃饭团建。

解题切入:先查新人最缺的信息与参与机会,给清晰文档/伙伴/小任务,不把融入等同吃饭团建。注意远程、语言、背景不同的人是否能获得同等信息。

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

跨部门协作项目

跨部门协作项目:用交付合同和决策权减少依赖摩擦:先列共同业务目标、各团队成功指标和关键依赖,明确每个接口/验收/决策owner。

解题切入:先列共同业务目标、各团队成功指标和关键依赖,明确每个接口/验收/决策owner。技术方案写成各方可检验的合同,冲突以用户影响和代价裁决。

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

主动发现性能瓶颈

主动发现性能瓶颈:测量、归因、灰度与用户收益:先证明瓶颈是值得投入的问题,再拆端到端延迟/资源,按profile验证根因。

解题切入:先证明瓶颈是值得投入的问题,再拆端到端延迟/资源,按profile验证根因。提出有预算的优化,灰度看收益及正确性,保留回滚。

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

别人抢成果功劳

别人抢成果功劳:准确记录贡献,避免公开争执:先确认是疏漏、表达模糊还是反复不当归功;私下用具体产出说明贡献并提出修正。

解题切入:先确认是疏漏、表达模糊还是反复不当归功;私下用具体产出说明贡献并提出修正。共享文档标注角色,向负责人说明影响与事实,不推测对方意图。

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

好团队与好文化

好团队与好文化:给可观察标准并说明自己怎样贡献:定义信息透明、可质疑决策、清晰责任、可靠交付和尊重差异等可观察行为。

解题切入:定义信息透明、可质疑决策、清晰责任、可靠交付和尊重差异等可观察行为。选两项与个人经历关联,而非声称一个团队从不冲突。

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

理想经理与自己的管理实践

理想经理与自己的管理实践:支持、反馈和交付边界:说明期待经理提供目标/优先级、及时反馈、成长机会和风险升级渠道;同时说明自己如何提供事实、主动报告阻塞并承担责任。

解题切入:说明期待经理提供目标/优先级、及时反馈、成长机会和风险升级渠道;同时说明自己如何提供事实、主动报告阻塞并承担责任。管理情境还要协调员工长期成长与业务交付。

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

职责外帮助同事

职责外帮助同事:确认影响、协调容量、留下可复用结果:先看求助的用户影响与自己任务优先级,再商议投入范围与时间;可以帮诊断、给文档或连接专家,不必须接管整个项目。

解题切入:先看求助的用户影响与自己任务优先级,再商议投入范围与时间;可以帮诊断、给文档或连接专家,不必须接管整个项目。帮助之后降低对自己长期依赖。

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

新问题缺领域知识

新问题缺领域知识:确定知识缺口并向专家求助:把陌生问题拆成可确认合同、假设、风险与需要专家判断的部分。

解题切入:把陌生问题拆成可确认合同、假设、风险与需要专家判断的部分。先做小验证,带已尝试过的证据和具体问题求助,保留对结果的owner责任。

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

过去一年怎样提升

过去一年怎样提升:用行为和产出证明学习闭环:选择和工作目标关联的一项能力缺口,给有节奏练习、反馈和实际应用。

解题切入:选择和工作目标关联的一项能力缺口,给有节奏练习、反馈和实际应用。读多少书不是终点,说明新的能力怎样改变决策或帮助团队。

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

团队相处融洽时如何提高创新

团队相处融洽时如何提高创新:安全质疑与低成本实验:先区分融洽和过度一致。

解题切入:先区分融洽和过度一致。让不同意见有明确入口,提出待验证假设、失败预算与验收指标,鼓励围绕证据挑战方案而非挑战个人。

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

不同背景与包容性设计

不同背景与包容性设计:把遗漏用户纳入验收:说明差异怎样揭示自己的默认假设,主动收集被忽略用户的任务、环境与可访问需求。

解题切入:说明差异怎样揭示自己的默认假设,主动收集被忽略用户的任务、环境与可访问需求。用实际设计改变和验证说明包容性,不凭人口标签代替需求研究。

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

临近deadline需求变化

临近deadline需求变化:评估影响并协商范围:先确认新需求是必须验收、风险修复还是想法,列对测试/依赖/上线的影响。

解题切入:先确认新需求是必须验收、风险修复还是想法,列对测试/依赖/上线的影响。给选项:改日期、删范围、分阶段或拒绝高风险变更,并由有权owner确认。

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

做新项目时发现旧bug

做新项目时发现旧bug:按影响验证并升级:先验证可复现性和影响范围,判断安全/数据/用户风险与新任务依赖。

解题切入:先验证可复现性和影响范围,判断安全/数据/用户风险与新任务依赖。轻微非关键可建票排序,严重问题应及时告知owner并止损,不能因为“不归我”忽略。

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

点集最大矩形

点集最大矩形:等长同中点的对角线分组:矩形不必平行坐标轴,用整数几何避免浮点相等。

解题切入:矩形的两对角线有同一中点且长度相等;反过来两个不同点对有此属性,构成等对角线平行四边形,即矩形。

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

老鼠避猫路径

老鼠避猫路径:最大化路径最小曼哈顿距离:只走陆地,猫静止,路径每点安全值是到猫的曼哈顿距离。

解题切入:每点安全s(v)=|r−rcat|+|c−ccat|。路径分数取min s,目标取max路径分数,属于widest path。

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

所有最短路径上出现的节点

所有最短路径上出现的节点:两遍BFS距离等式:无需枚举指数多条最短路径,逐节点检查距离相加。

解题切入:从S和T各BFS得dS/dT。最短总长L=dS[T],若不可达返回空。

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

好友加删日志最早全连通

好友加删日志最早全连通:先给正确重算,再讨论离线优化:删除不能用普通并查集拆开组件,直径限制也不是连通性。

解题切入:维护邻接set,每个时间组更新后BFS检查从0是否到全部用户。该基线支持删除且语义简单可独立验证。

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

恰一个坏数对的黑盒

恰一个坏数对的黑盒:二分定位两端,只看查询次数不够:黑盒回答输入集合是否不包含完整坏对,跨两半时分别定位端点。

解题切入:把候选分L/R,若L不clean则两端都在L;否则若R不clean则在R;否则必为一端在L、一端在R。

阅读这道题的独立深文 →
ML Domain / ML System Design · 80

Transformer Attention

Transformer Attention:维度、缩放、mask与梯度:从QK相似度到行归一化加权V,解释每一步及边界。

解题切入:Z=QKᵀ/√dk,A=softmax_rows(Z+mask),O=AV。除√dk使独立近零均值Q/K点积的方差不随dk线性增长;不是对向量长度作L2归一化。

阅读这道题的独立深文 →
ML Domain / ML System Design · 81

Classifier-Free Guidance

Classifier-Free Guidance:从条件概率到两路预测混合:明确scale参数化,解释条件强度与多样性的取舍。

解题切入:Bayes给∇logp(c|x_t)=s_c−s_u,常数p(c)无x梯度。受引导score可写s_g=s_u+g(s_c−s_u)。

阅读这道题的独立深文 →
ML Domain / ML System Design · 82

Autoencoder

Autoencoder:重建目标、瓶颈与为什么不能直接生成:确定性encoder/decoder学压缩,不自动给出可采样先验。

解题切入:损失为重建项,连续量可用MSE,二值观测可用Bernoulli负loglikelihood;这两个损失隐含不同噪声模型。

阅读这道题的独立深文 →
ML Domain / ML System Design · 83

VAE

VAE:ELBO、重参数化与posterior collapse:encoder输出分布,优化重建期望减KL,而非确定性编码。

解题切入:logp(x)≥E_q logp(x|z)−KL(q||p),来自对隐变量积分引入q并用Jensen;等号在q为真实posterior时成立。

阅读这道题的独立深文 →
ML Domain / ML System Design · 84

VQ-VAE

VQ-VAE:最近码本量化、straight-through与commitment:离散表示需要同时训练encoder、decoder与码本,生成另需latent prior。

解题切入:k*=argmin||z_e−e_k||²,z_q=e_k*,decoder读取量化表示。硬argmin不可直接微分,用straight-through让重建梯度传给z_e。

阅读这道题的独立深文 →
ML Domain / ML System Design · 85

选择Fine-tuning方法

选择Fine-tuning方法:先分知识缺口和行为缺口:从检索、prompt、参数高效微调到全量训练,比较数据与资源。

解题切入:知识频繁更新或必须引用来源,优先可授权检索;格式/风格/行为稳定性缺口可用指令数据微调,先与prompt基线比较。

阅读这道题的独立深文 →
ML Domain / ML System Design · 86

NLP Tokenization比较

NLP Tokenization比较:词、字、子词和字节的代价:讨论未知词、多语言、序列长度和可逆性,不只背算法名。

解题切入:词级序列短但词表大且OOV多;字符级覆盖广但序列长;子词在频率与覆盖之间折中,字节可覆盖任意编码序列但部分语言token数更多。

阅读这道题的独立深文 →
ML Domain / ML System Design · 87

结构化与非结构化数据Chatbot

结构化与非结构化数据Chatbot:路由、权限和可验证回答:文档检索与数据库查询分工,跨源组合必须可追溯。

解题切入:先判问题需要文档、结构化聚合还是两者;工具schema限制表/字段/row权限和查询预算,禁止模型直接执行任意SQL。

阅读这道题的独立深文 →
ML Domain / ML System Design · 88

实时ML推荐

实时ML推荐:冷启动、迭代与延迟精度预算:把离线训练与实时特征、召回、排序、监控串成可回滚闭环。

解题切入:事件流去重并更新短期profile,离线生成长期特征与模型。线上特征需时间版本/默认值,监控训练服务偏差。

阅读这道题的独立深文 →
ML Domain / ML System Design · 89

欺诈检测冷启动与不平衡

欺诈检测冷启动与不平衡:召回、误报和延迟标签:少数欺诈标签下,避免用accuracy掩盖漏检。

解题切入:先按时间定义事件与标签窗口,避免把调查后的信息作为预测时特征。冷启动用规则/可解释基线与人工复核,逐步收集覆盖可靠标签。

阅读这道题的独立深文 →
ML Domain / ML System Design · 90

Hashtag聚合服务

Hashtag聚合服务:计数口径、趋势窗口与热键:先定义top榜是总量、增长还是独立用户,再选计数与近似方案。

解题切入:事件key=(postId,tag)去重,保存eventTime/version和delete;stream按窗口汇总。热tag用局部聚合再合并,避免一个全局key承受每条写。

阅读这道题的独立深文 →
ML Domain / ML System Design · 91

视频近重复

视频近重复:候选检索、时间对齐和申诉:区分同文件、转码重复与内容近似,不只比较单个embedding。

解题切入:file hash只处理精确重复,感知指纹/片段embedding召回近似候选;分段匹配与时间对齐核对覆盖比例,减少相似场景误报。

阅读这道题的独立深文 →
ML Domain / ML System Design · 92

Google Photos笑脸功能评估

Google Photos笑脸功能评估:多脸、阈值与用户控制:确定一张照片是否满足产品笑脸规则,评估不同场景误差。

解题切入:拆成face detection→每脸smile score→照片级聚合,各阶段分别标注与评估。无脸不等于不笑,低质量/遮挡可输出unknown。

阅读这道题的独立深文 →
ML Domain / ML System Design · 93

Watch Next推荐

Watch Next推荐:会话目标、候选新鲜度与反馈偏差:下一条视频的排序需兼顾有效观看、探索和内容约束。

解题切入:多路召回长期兴趣、当前会话相似、关注和热门,再排序/重排。反馈含曝光、skip、停留与主动评价,明确哪些是用户真正可选择的行为。

阅读这道题的独立深文 →
ML Domain / ML System Design · 94

Naive Bayes

Naive Bayes:条件独立、log概率和零频平滑:分类比较各类别后验,独立是假设不是观察事实。

解题切入:p(c|x)∝p(c)Πj p(x_j|c),取log后为logprior+Σloglikelihood。预测argmax无需计算共同归一化常数;需要校准概率时则要logsumexp。

阅读这道题的独立深文 →
Situational Judgment · 95

YouTube设计想法未被采纳

YouTube设计想法未被采纳:怎样继续推动或接受决定:老板未采纳你认为很好的设计,先了解评价标准与约束。

解题切入:先问未采纳的原因,区分用户价值、成本、排期和证据不足。补一个低成本可比较实验或书面备选,不反复越过已明确的owner决定;决定后按团队方向交付,保留重新评估触发条件。

阅读这道题的独立深文 →
Situational Judgment · 96

采购时朋友公司急需客户

采购时朋友公司急需客户:披露关系并保持评估公平:你负责采购,朋友创业公司若失去机会可能陷入困境。

解题切入:向采购/决策owner披露关系,按正式流程确定自己是否回避评分或审批。供应商按相同功能、可靠性、价格和风险标准比较;个人同情不能替代验收,也不向朋友泄漏其他供应商报价。

阅读这道题的独立深文 →
Situational Judgment · 97

新PM因技术跟不上被嘲笑

新PM因技术跟不上被嘲笑:制止伤害并提供参与入口:同事嘲笑新PM,技术知识不足不应被当作排斥理由。

解题切入:当场平和打断不尊重表达,把讨论拉回问题;私下问PM需要的背景和支持。提供文档/伙伴/术语解释,鼓励其业务观点参与;重复行为通过负责人按流程处理。

阅读这道题的独立深文 →
Situational Judgment · 98

竞争公司朋友索要重要客户信息

竞争公司朋友索要重要客户信息:保持授权边界:朋友处境困难,但请求涉及公司重要客户资料。

解题切入:先确认资料权限与可公开范围,不因私人关系发送非公开客户数据。可分享已公开产品/招聘资源或一般建议;若请求继续或已经误发,按组织流程报告并处理影响。

阅读这道题的独立深文 →
Situational Judgment · 99

绩效系统把同事成果算给你

绩效系统把同事成果算给你:主动更正事实:你正处于达标边缘,错误归功可能让你受益。

解题切入:核对记录与真实贡献,向负责评价的人明确更正并给证据;同时准确呈现自己的真实成果。可请求补充评估真实工作,不以保持错误帮助自己达标。

阅读这道题的独立深文 →
Situational Judgment · 100

客户口头答应购买

客户口头答应购买:业绩记录与实际交易状态分开:你差一单达标,客户只口头承诺购买。

解题切入:按题目内定义的销售/验收规则记录真实状态,口头承诺不能自动记作已经完成交易。跟进书面确认、合同/订单或规定的完成证据,向manager说明预测与已完成差别。

阅读这道题的独立深文 →
Situational Judgment · 101

新同事被说不合群

新同事被说不合群:调整信息与参与机制:有人因与团队习惯不同而被嘲笑,处理具体不尊重行为。

解题切入:制止人身标签,私下了解新人体验与需求;让工作信息、决策和任务机会不依赖私人圈子。可提供可选社交入口,但不强迫对方改变性格或参加活动才算融入。

阅读这道题的独立深文 →
Situational Judgment · 102

客户送贵重礼品卡

客户送贵重礼品卡:按题目明确的禁收政策处理:即使客户坚持,也不能用经理口头许可或分给团队绕过规则。

解题切入:此题明示接受客户礼物违反公司政策,因此礼貌拒绝并说明约束。若已收或无法当场退还,保存事实并按既定渠道安排退回/处理,不自行消费或分摊。

阅读这道题的独立深文 →
Situational Judgment · 103

deadline前要求用前雇主代码

deadline前要求用前雇主代码:确认可授权来源与替代方案:即使自己写过代码,也不能直接假设可带入新公司。

解题切入:按题目内保密/知识产权与组织使用规则确认授权,不复制未知许可的旧代码。可用通用知识重新实现、选明确许可的公开组件、减范围或延后;带成本说明向owner协商。

阅读这道题的独立深文 →
Situational Judgment · 104

同事度假只带私人电脑

同事度假只带私人电脑:先确认允许的访问方式:机密报告协作需要权限、设备与传输渠道同时满足要求。

解题切入:核实公司是否允许受管个人设备访问该分类资料;有合规远程桌面/受控web通道可使用,否则等受管设备或找授权替代owner。不要用私人邮箱/聊天附件绕过设备要求。

阅读这道题的独立深文 →
Situational Judgment · 105

发送机密资料需审批但经理下班

发送机密资料需审批但经理下班:寻找正式代理或延期:deadline并不自动等于审批已经通过。

解题切入:检查是否有授权delegate/on-call审批和紧急流程;通过正式渠道说明时效和影响。没有获授权审批则暂不发送,给客户更新时间或可公开替代信息,并记录阻塞。

阅读这道题的独立深文 →
Situational Judgment · 106

咖啡厅接到机密讨论电话

咖啡厅接到机密讨论电话:换受控环境再继续:授权接听不代表环境适合谈敏感内容。

解题切入:提示当前位置为公共空间,先移到符合要求的私密地点或重约;可以讨论非敏感日程但不公开说客户信息/报告细节。耳机减少听到对方声音,不能避免旁人听自己。

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

收到竞争公司的全职Offer

收到竞争公司的全职Offer:职业选择与保密义务分开:面试题只有offer情境,不能臆定唯一选项或必须拒绝。

解题切入:个人可评估新岗位并按适用组织流程处理利益冲突/离职。与竞争方交流不披露当前雇主非公开信息,不用公司设备/数据为对方工作;实际合同限制需要专业核对而非本题推断。

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

朋友旅行时借工作电脑查邮件

朋友旅行时借工作电脑查邮件:不要给未授权者设备访问:私人便利请求需要符合设备与账号使用规则。

解题切入:按题目内组织设备规则核实,若不允许他人使用则拒绝。帮助朋友用其手机、公共服务或自己的私人设备;不借登录状态的公司电脑,也不以开隐私窗口当隔离保证。

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

至多改一个整数的最长单调子段

至多改一个整数的最长单调子段:严格与非降两个版本:分别处理a<b和a≤b,连接左右段的整数可行条件不同。

解题切入:left[i]/right[i]分别为不修改时以i结束/开始的最长合法段。保留不改的最大值。

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

多个顺序数组的共同母序列

多个顺序数组的共同母序列:唯一身份下的拓扑排序:每个元素在母序列只出现一次,约束成DAG才有解。

解题切入:对每序列的相邻元素加有向边;传递性保证相邻约束足以保留整序列。跨序列重复边只加一次indegree。

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

压缩排序数组中位数

压缩排序数组中位数:按频数跨越目标秩:重复次数巨大也不解压,把中间两个秩落到值桶。

解题切入:汇总各值频数,求总count N,中间0基秩为(N−1)//2及N//2。排序值桶后累积count,找到两秩落在哪个桶。

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

二叉树最长同值路径

二叉树最长同值路径:两条向下臂在节点拼接:路径长度按边数,同值重复树不是严格BST。

解题切入:down[u]是从u向下能走的最长同值边数。左右孩子值同u时对应臂为1+down[child],不同则0。

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

Word Break

Word Break:按位置DP,避免把重复子问题留给回溯:字符串是否能由词典中的非空词重复拼接。

解题切入:dp[end]代表s[:end]能拼出。尝试词长上限M内的start,如果dp[start]且s[start:end]在词典,则为True。

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

子集去重

子集去重:重复值只扩展上一轮新生成部分:按值多重集合输出不同子集,重复位置不重复返回相同值组合。

解题切入:排序使同值连续。不同于前一值时对所有现有子集附加当前;相同值时只扩展上一轮新增的子集。

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

不重叠区间成员查询

不重叠区间成员查询:O(n)、O(logn)、O(1)的真实代价:add成本、固定值域位图和空间预算需要分开说明。

解题切入:线性版查任一区间包含x为O(n)。有序版找最后start≤x,再检查x<对应end,只需一次二分。

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

实现Trie添加和查词

实现Trie添加和查词:末尾标记区分词与前缀:哈希集合可查完整词,但Trie让共享前缀和后续接口可扩展。

解题切入:root是字符→子节点映射。add逐字符沿已有节点或新建,到词末记terminal。重复add幂等。

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

滑窗去掉最大K项后的平均

滑窗去掉最大K项后的平均:计数树与秩前缀和:重复值按出现次数删除,保留最小W−K项,精确计算均值。

解题切入:值压缩后,两棵Fenwick分别存次数和数值和。窗口加入/过期各点更新;要去最大K,等价取最小W−K个的和。

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

照片Iterator

照片Iterator:先favorite,再普通列表,过滤blocked和重复:顺序稳定且不提前读尽所有输入,迭代状态只保存必要去重。

解题切入:依次遍历两个source,每ID先检查blocked再seen,通过才放seen并yield。整个算法不按ID排序,保留原到达顺序。

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

重复向量压缩与点积

重复向量压缩与点积:按两侧run交叠长度乘加:RLE保留位置顺序,单纯统计全局值频率无法计算点积。

解题切入:两指针记录当前run剩余次数。交叠长度=min(remA,remB),贡献take×valueA×valueB。

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

数组offset到数据流

数组offset到数据流:正数取前缀,负数保留末尾:负offset必须读取流结束,前缀则可提前停止。

解题切入:正数用最多k次next即可,不预读第k+1项。负数用容量k的deque,每新项自动淘汰最老,结束后队列就是后k项。

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

下一词预测

下一词预测:一次处理语料后按频次查后继:map of maps存bigram计数,静态数据可预计算最佳后继。

解题切入:每句相邻词(a,b)更新counts[a][b]。句尾不与下一句开头连接,避免伪造语言关系。

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

Superprime

Superprime:每个十进制前缀都是质数:从一位质数扩展,只保留继续满足前缀条件的候选。

解题切入:一位候选为2/3/5/7。扩展为10p+d,新数若质数则保留;旧所有前缀已验证,所以只需检查新完整数。

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

FizzBuzz撮合市场

FizzBuzz撮合市场:FIFO部分成交与参与者对聚合:优先级是输入先来先服务,用两个队列保存未匹配余额。

解题切入:新Fizz消费Buzz队头,反向同理,每次amount=min两余额。某旧offer耗尽弹队头,新offer剩余才入己方队尾。

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

碎片字符串查首个子串

碎片字符串查首个子串:跨片匹配并返回片内下标:KMP状态不中断,匹配可从一片开始在下一片结束。

解题切入:预处理pattern失败函数,遍历各片字符时保留matched,不因换片归零。失配用prefix回退,不重新从头扫。

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

只用加法、取模和右移乘法

只用加法、取模和右移乘法:迭代与递归双倍分解:将非负乘数按二进制拆分,避免重复加b次。

解题切入:循环维护result+a×b等于原积的数学不变量(实现不执行乘法)。b为奇数时加a,再a变a+a、b右移1;因此剩余贡献与加入部分之和不变。

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

没有明确截止日期时怎样可靠完成任务

没有明确截止日期时怎样可靠完成任务:先确认任务价值、owner和验收,提出合理阶段日期,让对方确认优先级;用可见状态与阻塞升级保持推进,不等别人每日提醒。

解题切入:先确认任务价值、owner和验收,提出合理阶段日期,让对方确认优先级;用可见状态与阻塞升级保持推进,不等别人每日提醒。自评应按自己的真实行为,不照抄极端选项。

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

速度与准确性冲突

速度与准确性冲突:重要小错误也要按风险处理:先界定错误影响和是否可逆;涉及权限、数据完整性或用户重大影响应作为发布基线,低风险表达可后续修。

解题切入:先界定错误影响和是否可逆;涉及权限、数据完整性或用户重大影响应作为发布基线,低风险表达可后续修。采用分层review与自动校验提高速度,不默认“所有细节都无限检查”。

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

沟通与演示

沟通与演示:按受众背景调整内容并预判提问:先问受众需要做什么决定、已有背景和时间预算。

解题切入:先问受众需要做什么决定、已有背景和时间预算。把技术细节分层:一句结论、证据/取舍、可展开细节;预判风险、成本和下一步问题,避免只有漂亮图。

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

项目流程变化时怎样快速适应且保持有效交付

项目流程变化时怎样快速适应且保持有效交付:先查变化的原因、适用范围和新验收,识别受影响的工具/依赖/职责。

解题切入:先查变化的原因、适用范围和新验收,识别受影响的工具/依赖/职责。更新自己的计划并通知协作方,不只是读一遍新文件;反馈真实摩擦而非拒绝所有改变。

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

会议决策记录

会议决策记录:让理由、责任和后续行动可追溯:记录决定、备选及理由、假设、owner、日期和待核事项,不逐字抄所有发言。

解题切入:记录决定、备选及理由、假设、owner、日期和待核事项,不逐字抄所有发言。发给参与者确认,后续变化以版本修订,避免把讨论提议误写成已批准。

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

困难任务先查背景与风险

困难任务先查背景与风险:有限调查支持及时决策:先看已有合同/历史决策/失败案例,按影响和不确定性排优先,不追求了解每个细节才开始。

解题切入:先看已有合同/历史决策/失败案例,按影响和不确定性排优先,不追求了解每个细节才开始。关键风险设验证或回滚方案,已有充分信息时及时决定并承担责任。

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

偏好大小团队与职责分工

偏好大小团队与职责分工:说明条件而非贴标签:比较小团队的跨职能与快速反馈、大团队的专业分工与依赖协调。

解题切入:比较小团队的跨职能与快速反馈、大团队的专业分工与依赖协调。用个人经历说明更适合的阶段/目标,也解释如何在另一环境有效工作,不默认规模决定文化或能力。

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

同事没有达到期待

同事没有达到期待:澄清标准、支持改善、及时升级:先核实期待是否明确、资源/依赖是否合理,私下讨论可观察差距。

解题切入:先核实期待是否明确、资源/依赖是否合理,私下讨论可观察差距。给具体支持和短期检查点;持续影响用户或交付时向正式owner升级,不替同事无限包办。

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

团队成员失联或无法协作

团队成员失联或无法协作:保护关键路径并建立备份:先用既定渠道确认状态与是否有紧急影响,不猜测懒惰。

解题切入:先用既定渠道确认状态与是否有紧急影响,不猜测懒惰。查文档/backup与自己可授权完成的范围,及时通知owner和调整承诺;恢复后复盘单点依赖。

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

没有结构的团队怎样改进工作方式

没有结构的团队怎样改进工作方式:先找具体摩擦:优先级不清、重复工作或决策无owner。

解题切入:先找具体摩擦:优先级不清、重复工作或决策无owner。选一个小范围机制解决最痛点,邀请参与者试用并用反馈调整,不一上来引入沉重流程。

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

怎样成为优秀技术Leader

怎样成为优秀技术Leader:方向、判断和他人成长:用可观察行为定义技术lead:准确理解用户问题、做可解释取舍、发现风险、协调依赖、让他人独立。

解题切入:用可观察行为定义技术lead:准确理解用户问题、做可解释取舍、发现风险、协调依赖、让他人独立。资深或代码写得快不是充分条件;无正式职权也可承担一部分影响。

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

职业目标、优势和弱点

职业目标、优势和弱点:以真实证据规划下一步:选与岗位相关的优势给具体证据,弱点说明影响、改进和仍存在的边界。

解题切入:选与岗位相关的优势给具体证据,弱点说明影响、改进和仍存在的边界。短期目标具体到能力/职责,长期方向留可调整空间;不保证某职位或晋升时间。

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

有向图强连通分量及边增删

有向图强连通分量及边增删:普通DSU为什么不够:同一SCC要求互相可达,单向边不是等价关系合并证据。

解题切入:先明确强连通是u能到v且v能到u。DSU适合无向边连通或已知等价合并,不能把每条有向边两端直接union。

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

未知起点RobotStub迷宫

未知起点RobotStub迷宫:虚拟坐标、探索与回退:只能canMove/move/isGoal,机器人物理位置必须和DFS状态一致。

解题切入:起点虚拟坐标(0,0),只为识别重访,不需知道地图真实原点。每尝试新邻居先canMove,成功移动才标已访问并开新frame。

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

链表十进制大数加法

链表十进制大数加法:进位、长度差与输入顺序:一节点一位,训练明确低位在前,输出新链表不改输入。

解题切入:两游标逐位取x/y,缺失位按0,carry与digit由divmod(x+y+carry,10)得到。

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

家族是否有血缘关系

家族是否有血缘关系:父母DAG的祖先集合交集:兄弟姐妹可能互不可达,却共享祖先,所以不是查一条路径。

解题切入:分别沿父指针搜索全部祖先,用seen防重复公共分支。取两集合交集非空即可。

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

频率表排序与加权随机

频率表排序与加权随机:精确整数区间取样:排名按频次,随机概率按count/总count,二者不是均匀选key。

解题切入:对正频项建立严格递增prefix累计和。随机整数r落入哪个半开频次区间就返回哪item,bisect_right(prefix,r)处理端点。

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

二进制规则通配

二进制规则通配:明确*匹配任意长度及胜出策略:模式完整匹配输入,first与longest两种规则不可混称同一答案。

解题切入:DP[i,j]表示pattern前i项完整匹配text前j字符。字面匹配从左上转移;*可匹配空从上一行同列,或多一个字符从当前行左列。

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

城市天际线

城市天际线:同坐标事件合并与高度最大堆:建筑区间重叠时输出最高覆盖高度变化点。

解题切入:每左端加入(-height,right),每右端至少产生一个检查事件。按x分组,先加入本时刻新建筑,再从堆顶删除right≤x的到期建筑。

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

RPN转中缀最少括号

RPN转中缀最少括号:优先级与右孩子非结合运算:保留操作数次序,不做代数重写,采用精确有理数语义。

解题切入:扫描RPN遇整数入栈,运算符弹right再left,保存生成文本与根运算优先级。必须两操作数,最终恰一表达式。

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

无向树能否选成二叉树

无向树能否选成二叉树:度数与同层颜色约束:根最多两孩子,其余点扣掉父亲后最多两孩子,再检查每层同色。

解题切入:任意非根点children=degree−1,因此所有degree≤3是必要条件;候选root degree≤2。若满足,这些候选对纯二叉约束全部可行。

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

火炬节点功率传播

火炬节点功率传播:最近火炬的多源BFS:火炬提供16功率,按边距离衰减,先写清衰减合同。

解题切入:多个等强火炬同时distance0入队。多源BFS首次访问点给最近火炬距离,所以power=max(0,16−distance)。

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

非负权重对象TopK子集

非负权重对象TopK子集:把最大和转成最小排除代价:相同权重对象仍是不同身份,等和结果保留多个子集。

解题切入:全选sum(weights)为最大。每个选择子集对应一个排除子集,选和=总和−排除和,因此枚举最小排除代价。

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

Babylon堆叠游戏

Babylon堆叠游戏:合法合并与记忆化胜负状态:同高度或同顶色才能叠,减少堆数保证游戏终止。

解题切入:合法操作枚举两堆及两种上下方向。所有未来规则只看高度/顶色,排序stack multiset作为canonical state,不保留与规则无关的tile内部顺序。

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

按数量种连通作物

按数量种连通作物:Hamiltonian蛇形路径连续分段:矩形以及纵向/横向对齐的两正方形,都先构造相邻遍历序列。

解题切入:矩形逐行交替左右扫,形成每格恰一次且相邻的Hamiltonian路径。把路径按每种count切连续段,段内沿路径必连通。

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

次数/值列表原地展开与Iterator

次数/值列表原地展开与Iterator:同一对象和辅助空间:处理零次数与缩短/扩大输出,先保证正确,再讨论线性约束。

解题切入:通用基线扫描当前pair,保存count/value,删除这两格,再逐一在当前位置插入value并前移。未处理pair仍位于输出前缀之后,不会被覆盖。

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

海拔网格共同可达最高点

海拔网格共同可达最高点:水流方向先说清:两个搜索集合求交并取最高,供水与汇流是相反方向模型。

解题切入:构建隐式有向边,默认从A/B分别搜索可达格。交集内取最高海拔并稳定坐标tie。

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

水平线平分正方形总面积

水平线平分正方形总面积:事件斜率精确求切点:明确重叠按每个square分别计面积,和几何并集是不同版本。

解题切入:square在[y,y+side]内,下方面积随切高线性增长,斜率side。y加side斜率,y+side减side,按事件扫描面积积分。

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

最便宜共同祖先

最便宜共同祖先:价格目标不是最低深度:节点有parent/children/price,遍历完整共同祖先链寻找最小价格。

解题切入:把A到根的所有节点身份放set,再B到根扫描,遇共同节点比较price;不要遇第一个共同节点就返回,它只是LCA。

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

括号加次数解压

括号加次数解压:递归grammar与输出上限:(subsequence){count}可嵌套,合法例a(b(c){2}){3}d。

解题切入:递归sequence消费到对应右括号,读{count}后复制内部段。根调用结束必须恰到text尾,不允许静默忽略额外)。

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

网络延迟

网络延迟:非负有向最短路与最慢接收节点:从单源广播,取所有节点最短到达时间的最大值,有不可达则失败。

解题切入:Dijkstra的dist[v]是已知最短路上界,最小cost出堆后非负边无法通过更晚点再降低该cost。松弛new=cost+w。

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

装水先最少桶、再最小最高水量

装水先最少桶、再最小最高水量:平均下界与固定首桶:同容量上限、连续液体分配,不是两桶倒水的gcd问题。

解题切入:容量约束nC≥V,所以V>0最少n=ceil(V/C)。n固定后最大装水量≥平均V/n,均分达到下界且V/n≤C,因此最优。

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

一维奶茶配送

一维奶茶配送:先最大匹配数,再最小总距离:每人/店最多参与一单,距离≤5,排序后DP保留两层目标。

解题切入:排序两侧。绝对距离满足非交叉交换不增加总成本;若交叉两对都距离≤D,交换后两对仍在同一限距内。因此存在非交叉最优匹配。

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

二叉到N叉LCA

二叉到N叉LCA:身份、缺失节点和子树标志:每个子树是否包含p/q由位标记汇总,最深同时包含者为答案。

解题切入:正向收集节点order并校验身份唯一,反序保证孩子先处理。每节点标志为本人命中位OR所有child位。

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

按整层返回的树Iterator

按整层返回的树Iterator:队列快照和输出成本:hasNext看待处理队列,next一次返回一层,而非一个节点。

解题切入:初始化仅root。next开始记录本层queue长度,恰弹出这么多节点,收集values并把child入队。

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

优先级Job与调用次数冷却

优先级Job与调用次数冷却:ready堆和eligible堆:冷却不是墙钟时间,同一次getJob还需定义是否推进计数。

解题切入:ready堆按(−priority,seq,id),waiting按(eligibleCall,seq,id)。每get先calls++并把所有到期Job移ready,再弹最高并挂到waiting。

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

N×N多玩家井字棋

N×N多玩家井字棋:三连胜判定与非法操作:玩家轮流落不同单字符,任意方向连续三枚即胜。

解题切入:保存稀疏board映射。play先检查状态、轮次、范围与占位,然后落当前player。

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

相同数字分组且组大小不同

相同数字分组且组大小不同:频次去重判定:每个值恰一个组,不同值的出现次数不能重复。

解题切入:Counter统计各值count,形成频次数组。若频次set大小等于不同值数,则所有组大小互异,True。

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

最少会议室/租车数及分配

最少会议室/租车数及分配:按开始时间复用已结束资源:每笔需求持续占一个资源,半开区间端点相接可以复用。

解题切入:按start排序,active最小堆存(end,id),开始前释放所有end≤start资源到freeID堆,取最小空闲ID,否则创建新资源。

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

每位置后面更小的数量

每位置后面更小的数量:逆序Fenwick计频:只统计严格小于,重复值不会互计。

解题切入:压缩排序不同值,逆序时树内恰存当前右侧所有元素。query(rank−1)给更小频次,随后插当前rank。

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

重叠区间XOR为零的三元组

重叠区间XOR为零的三元组:公共端点被抵消两次:明确F(x,y)含两端,x≤y≤z,输出所有满足三元组。

解题切入:前缀P[t]是前t项XOR,Fxy=Px XOR P_(y+1),Fyz=Py XOR P_(z+1)。中间ay在两区间重复,化简为Px XOR P_(z+1) XOR ay=0。

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

多层食谱库存

多层食谱库存:依赖DAG展开并聚合同一原料需求:蛋糕依赖糖,糖再依赖蔗糖,共用原料不能分别验证后忘记相加。

解题切入:expand(item)返回制作一份所需叶原料向量。叶返回{self:1};对每ingredient递归展开、乘需求数量,再按原料相加。

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

恰两种无序平方和

恰两种无序平方和:枚举a≤b并饱和计数到3:包含a0和a=b,严格s<n,不把第三种表示误当两种。

解题切入:a到isqrt(n−1),b从a到isqrt(n−1−a²)。这刚好枚举每个无序合法pair一次。累加counts[s],超过2后饱和为3保留“至少3”状态。

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

黑盒找全部坏数对

黑盒找全部坏数对:两元素查询基线与单坏对区别:is_clean只说集合内是否有坏pair,任意多个关系不能丢一端继续搜。

解题切入:最直接对全部无序pair查一次,[a,b]不clean当且仅当该pair坏,所以得到完整边集。

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

洗牌Fisher–Yates

洗牌Fisher–Yates:每步选0..i,无偏性靠条件概率:原地生成所有位置排列,重复值仍按原位置身份处理。

解题切入:从末端i到1,均匀选当前0..i一项放到i,与原a[i]交换。固定i后以后不再改该位置。

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

snake_case转camelCase

snake_case转camelCase:先确定分隔符与大小写合同:首词不变,后续词首字母大写,非法空段不默默吞掉。

解题切入:split underscore得到parts,检查每词非空及合法字符。保留首词,后词仅首字母upper,后续按原样拼接。

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

矩阵转置与90°旋转

矩阵转置与90°旋转:维度、稀疏坐标和3D轴:转置不等于旋转,非方阵输出shape也不同。

解题切入:转置映射(r,c)→(c,r),新shape(cols,rows)。顺时针旋转映射(r,c)→(c,rows−1−r),不能直接swap坐标就称旋转。

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

送货路线

送货路线:先最少危险站,再最少步数:第一问完全避开危险节点;第二问按危险数量、步数作字典序优化。

解题切入:避险版先拒绝危险起终点,再跳过危险邻居。普通BFS足够;示例统一使用堆,以便共用第二问流程。

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

行星引力区间

行星引力区间:合并危险范围后取补集:先确认坐标是实数还是整数、查询边界和区间端点。

解题切入:先裁剪危险区间到查询域,按左端点排序;cursor代表尚未决定的最小整数。

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

两日日志对象筛选

两日日志对象筛选:共同出现且客户至少两种:客户数是跨两日合并还是每日至少两种,需要分开解释。

解题切入:每日日志按obj聚合client集合,对object键做交集,再按所选合同检查客户数。不要对整条日志交集,因为timestamp不同但obj可以相同。

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

三叉树众数与Broken Tree

三叉树众数与Broken Tree:频数正确性先于排序优化:left小于、middle等于、right大于,但损坏树需要先定义损坏类型。

解题切入:稳健基线用DFS遍历每个节点计频,再取最大频数的所有值;不依赖排序性质,因此能覆盖值放错分支的broken tree。

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

按标签匹配回答者与问题

按标签匹配回答者与问题:倒排索引及优先队列:先定义任一标签匹配、全部标签匹配和回答优先级。

解题切入:建tag→questionIDs倒排。any查询取posting并集,all按最短posting开始交集,空tag在any返回空、all按空集子集定义返回全部。

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

任务依赖总时长

任务依赖总时长:无限并行关键路径与M处理器区别:DAG任务持续时间已知,无限CPU时按最晚前驱结束时间启动。

解题切入:Kahn拓扑序计算start[v]=max finish[pred],finish[v]=start[v]+duration[v],总时长取最大finish。重复边先去重避免入度错。

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

3×3分组最小值

3×3分组最小值:固定分块与滑动窗口分别验证:每组由九个格子的最小值代表;含1可判无效。

解题切入:对每候选九格求min,若含1且无效规则开启就跳过。九格是常数,扫描复杂度仍与格子数线性。

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

Request begin/end日志

Request begin/end日志:最早已完成请求优先输出:输出开始和结束时间,堆只能排序目前已收到的完成事件。

解题切入:active保存开始时间,end查找并删active,将(end,id,start)压最小堆。done集拒绝ID再次使用;若生产ID复用需版本。

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

Google Doc行数

Google Doc行数:换行、空白、长词与字符宽度:给文本和最大宽度,先明确排版是否保留空格及是否按词换行。

解题切入:split按 保留尾部空段,每段len为L,需要max(1,ceil(L/width))行;空段也代表显式空行。

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

字符流检词并删除

字符流检词并删除:后缀命中、长词优先与连锁删除:每输入一个字符,检查可辨词并从保留流中删掉。

解题切入:保留字符stack,新字符加入后只需检查词是否为当前后缀。此前无未处理匹配的不变量,使任何新产生的匹配必须涉及新尾部。

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

不相邻取点最大和及下标

不相邻取点最大和及下标:DP回溯选择:除最大点数外,返回对应策略的原始位置。

解题切入:best[i]为前i项最优,取当前=values[i−1]+best[i−2],不取=best[i−1]。比较记录take[i]。

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

黑盒距离点集可达

黑盒距离点集可达:隐式图搜索与二次查询边界:距离严格小于r才有边,cache减少重复但不改变一般最坏阶。

解题切入:BFS只对出队u与尚未发现v查询,命中则标记并入队。无需预建全部邻接,达到target可提前停。

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

网格从首行到底行

网格从首行到底行:可达、全部简单路径、权重最短路:三问的目标不同,全部路径输出不能套BFS全局visited。

解题切入:可达单独用多源BFS,起点同时入队,O(RC)。代码的all_paths为教学生成器,用当前路径seen回溯,不能用永久visited压掉另一合法路径。

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

储物柜分配与归还

储物柜分配与归还:最小空闲编号和最后一次分配:最后分配编号是历史状态,归还不会把它改成当前最大柜号。

解题切入:空闲编号最小堆,users映射user→locker。store弹堆、绑定、更新last;retrieve删绑定并把该柜压回堆。

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

Spreadsheet基础set/get

Spreadsheet基础set/get:地址校验与字面值存储:先实现可验证的字面值API,再明确公式等后续需求。

解题切入:用地址作hash键,set覆盖、get默认None。先校验地址和值再写入,避免半更新。地址前导零拒绝,防A01/A1不同键却同格。

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

每日Job同类型重叠共享

每日Job同类型重叠共享:按类型并集计算峰值容量:相同Job重叠允许共享,与每个实例独占Server是两种模型。

解题切入:每条周期区间切为[0,P)内一段或跨午夜两段;同type先合并重叠及相接,不能跨类型合并。

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

纯绿色Wordle

纯绿色Wordle:位置字母查询与候选集分割:oracle只回答某位置是否是某字符,字典能帮助减少查询。

解题切入:维护候选集合,枚举有信息量的位置/字符,计算yes候选数,选|N−2yes|最小者。按oracle真值过滤,直到唯一候选即可识别答案。

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

商场多入口人数上限

商场多入口人数上限:原子许可与门控故障:多个门同时进出,满员时阻止新进入,保证人数不会超限。

解题切入:API reserve(entryID,eventID)、confirm(token)、cancel(token)、exit(personToken,eventID)。服务保存present/reserved,原子检查present+reserved<C后发唯一token,确认把reserved转present。requestID去重避免重试发两份。

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

Customer内部服务

Customer内部服务:数据库、惰性枚举、缓存与并发:返回客户信息时要定义结果何时读取、数据库连接何时释放。

解题切入:单客户get优先cache-aside,key包含tenant和必要投影版本。多个并发miss可single-flight合并同key查询,失败不缓存为正常客户。TTL/失效与读后写一致性按业务需求定。

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

Gemini Android App设计

Gemini Android App设计:会话流、离线草稿与生命周期:从移动端会话状态和流式响应切入,逐层回答架构追问。

解题切入:分层UI→会话状态→Repository→本地DB/网络。conversation/message/clientRequestID形成持久身份,消息状态draft/sending/streaming/complete/failed,用reducer处理事件,旋转屏幕不重发。

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

内部多租户Rate Limiter

内部多租户Rate Limiter:热点、区域预算与故障策略:内部团队共享限流服务,精度、隔离、可用性和区域一致性需要明确取舍。

解题切入:gateway调用allow(key,cost),分片限流状态原子补token并扣费。需要使用服务权威单调时间,避免客户时钟操纵。hot tenant可以独立分片或分层本地配额。

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

亿级用户全球通知

亿级用户全球通知:事件、渠道投递与Fallback:Push、Email、SMS分别记录尝试,定义送达语义和去重范围。

解题切入:事件表eventID/recipientID/payloadRef,delivery表(event,channel,attempt,status,providerID)。先outbox持久化再分发,按recipient分区使同用户顺序可控,批量fan-out和渠道worker解耦。

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

超大整数文件最大值

超大整数文件最大值:流式扫描与并行分块行边界:一行一个整数,文件大于内存时只保存局部最大值。

解题切入:顺序版逐行parse并更新max,初值None而非0,空文件返回无值。内存为当前最长行+最大整数位数,不能read全部。

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

不同用户群的需求冲突

不同用户群的需求冲突:产品取舍与分群验证:描述如何让产品满足不同用户群,说明改进证据和被排除的人群。

解题切入:先解释哪些用户、主要任务、冲突需求及证据来源,如访谈/流失漏斗/支持工单。不要把“全部人都喜欢”当目标,要给主目标及不可损伤的护栏。

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

A/B短期获胜但经理担忧长期体验

A/B短期获胜但经理担忧长期体验:把分歧变可检验风险:模型实验好,仍需检验长期用户损伤,不靠更大声地争辩。

解题切入:复述短期赢在哪、哪些群体及effect size,同时问经理长期损伤假设:疲劳、重复、信任、生态供给还是满意度。把抽象担忧变成可观察指标和失败阈值。

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

打印全部1000位数

打印全部1000位数:输出规模本身就是下界:先算输出数量,再讨论枚举器的有限演示与可行性。

解题切入:1000位正整数共9×10^999个,从10^999到10^1000−1。每个至少输出1000字符,因此字符数至少9000×10^999,不存在实际一次完整打印的资源预算。

阅读这道题的独立深文 →
Technical · 199

矩阵特征值

矩阵特征值:方阵定义、2×2计算与稀疏迭代:转置和旋转是坐标操作,特征值是Ax=λx的谱问题。

解题切入:2×2特征多项式λ²−tr(A)λ+det(A),根=(tr±sqrt(tr²−4det))/2。判别式负则共轭复根,不能因实数输入就拒绝。

阅读这道题的独立深文 →
Technical / Simulator Design · 200

C++ CPU Simulator设计

C++ CPU Simulator设计:时间推进、精度与优化:区分cycle/event驱动与cycle-accurate/approximate两个独立维度。

解题切入:cycle-based每tick推进活跃组件,event-based跳到下一个变化事件;事件式一样可精确描述每周期时序。approximate是省略哪些竞争/延迟的建模选择,须列误差来源。

阅读这道题的独立深文 →
Technical / Simulator Design · 201

Branch Predictor模块

Branch Predictor模块:预测、训练与错误路径恢复:模块接口要区分预测时刻、分支解析、提交与squash。

解题切入:预测读表状态0/1预测not-taken,2/3预测taken,返回prediction和记录index/history的token。resolve拿真实结果,计数器向正确方向饱和;不要用已变化历史重新计算旧index。

阅读这道题的独立深文 →
Technical / Simulator Design · 202

Cache地址分解与缺失成本

Cache地址分解与缺失成本:容量、关联度和冲突:解释cache时先明确line、set、way及替换/写策略。

解题切入:offset=address mod B,set=floor(address/B) mod S,tag=floor(address/(B·S))。同set超过A条活跃line会冲突,即使全cache仍有空位。

阅读这道题的独立深文 →
Technical / Simulator Design · 203

MSHR

MSHR:合并同Line缺失与非阻塞Cache背压:未完成缺失需要状态,同line后续请求和新line占用不同资源。

解题切入:cache miss先查是否已有line的MSHR,能兼容则把新请求挂target而不重复发相同fetch;不同line需要新entry,满时向上游背压。

阅读这道题的独立深文 →
Technical / Simulator Design · 204

MOESI

MOESI:脏共享所有者与写权限转移:先解释稳定状态,再分析消息中的过渡状态与并发。

解题切入:M独占脏,E独占干净,S共享,O持有脏共享权威副本,I无效。O使脏数据可给其他reader共享而不要求立即写回内存;谁负责后续供数/写回由协议所有权定义。

阅读这道题的独立深文 →
Technical / Simulator Design · 205

VIPT Cache

VIPT Cache:并行TLB查询、页内索引与别名:虚拟索引和物理tag让访问重叠,但索引超出页内偏移需额外处理。

解题切入:页内偏移在VA→PA翻译中不变,因此先用VA页内set位读cache同时查TLB,拿PA tag核对。常见简单无别名约束S·B≤P,即C≤A·P。

阅读这道题的独立深文 →
Technical / Simulator Design · 206

TLB与Page Walk

TLB与Page Walk:翻译缓存、权限和跨核失效:TLB miss先walk,不等同page fault;PTE修改后还要撤销旧翻译。

解题切入:TLB缓存VA页到PA页及权限等,hit仍检查访问类型;miss由walker读取多级PTE,找到有效叶后填TLB。页表无映射/权限错误才走fault路径,操作系统再按类型处理。

阅读这道题的独立深文 →
Technical / Simulator Design · 207

ROB与精确异常

ROB与精确异常:乱序执行、顺序提交和回滚:执行完成不等于架构状态已提交,错误路径要能取消。

解题切入:dispatch为指令分配ROB和物理目标寄存器;执行可乱序完成,把结果/异常标记写回对应条目。head ready且无异常时才顺序提交,使架构状态对应程序前缀。

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

最近喜爱城市

最近喜爱城市:同一最短层全部返回:地图起点到喜爱集合的最短距离可能并列,需要返回全部。

解题切入:BFS记录最短distance,发现第一个favorite时确定最佳层d。继续处理队列里距离d的节点,收集所有favorite,遇下一层即可停止。

阅读这道题的独立深文 →
Leadership · 209

没有汇报关系的团队

没有汇报关系的团队:如何推动技术改变:讲影响机制、对方利益与可逆试点,而非用职级压服。

解题切入:先说明为何必须共同改变、对方已有目标和迁移成本。列自己的权限及谁拥有最终决策,避免把建议说成命令。

阅读这道题的独立深文 →
Leadership · 210

最重要技术决策

最重要技术决策:选择、风险和可追溯责任:说明为什么做这个决定、有哪些备选,以及后来发现哪些地方错了。

解题切入:从业务约束、规模、deadline和组织能力解释决策背景。给至少两个可行候选,用延迟/成本/可靠性/运营负担作统一比较,不把被拒方案写成明显错误。

阅读这道题的独立深文 →
Leadership · 211

系统事故处理

系统事故处理:止损、指挥、沟通与复盘:把恢复服务和查明原因分开,说明自己如何协同而不是单人救火。

解题切入:第一步确认影响范围和紧急保护动作,指定incident lead、技术恢复/对外沟通/时间线记录职责。先回滚、限流或隔离可逆措施,保留证据,不等根因完全清楚才止损。

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

0/1背包

0/1背包:每项最多一次,逆序容量防重复:容量受限选最大价值,和完全背包的状态更新方向不同。

解题切入:best[c]为已处理物品且重量≤c的最大价值。处理(weight,value)时best[c]=max(best[c],best[c−weight]+value)。

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

完全背包

完全背包:物品可重复,正序更新接纳当前项:沿容量正序传播,使同类物品能取多份。

解题切入:状态仍是容量以内最大价值,处理当前物品时容量从weight到W正序。best[c−weight]已经允许当前项,因此加当前项后能重复使用。

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

二叉树右视图

二叉树右视图:每层最右节点,而非全右链:有的层右子树缺失时,左子树节点仍可见。

解题切入:BFS每轮固定当前queue长度,先left后right入队,处理完本层最后pop的节点即最右节点。

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

聊天日志次数TopK

聊天日志次数TopK:计事件与不同联系人分开:按聊天次数排序用户,明确一条事件计谁和并列规则。

解题切入:Counter聚合后全排序按(−count,id),得到确定TopK。这是K可变查询的可靠基线,不能用不同邻居set替代次数。

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

手写JSON序列化

手写JSON序列化:字符串转义、递归容器与循环:键是字符串,值可以字符串、列表和字典。

解题切入:string用双引号包裹,转义quote/backslash和控制字符;/ / / / 短转义,其余<0x20用四位\u。不能直接str(dict),那是Python语法不是JSON。

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

课程依赖

课程依赖:可完成判断与一种拓扑顺序:Course Schedule变体先落在明确DAG训练合同,不推定额外条件。

解题切入:边pre→course,入度是未完成前置数。把所有入度0课入队,弹出后减少后继入度,变0入队。

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

每格到最近Taxi

每格到最近Taxi:多源BFS与上下线重算:新增源可下降距离,删源会使距离上升,更新不能完全对称。

解题切入:把全部在线taxi格距离设0同时入队,BFS一次算每格最近距离。不要为每格重复找taxi。

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

Insert与任意第K大

Insert与任意第K大:O(1)查询把成本移到插入:重复值算独立位置,k从0开始。

解题切入:维护升序数组,用bisect定位插入位置后移动尾部元素。第k大直接values[n−1−k],保留重复。

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

恰有X场会议的全部区间

恰有X场会议的全部区间:按事件差分扫描:不是仅求最高并发,也不是仅X=1。

解题切入:每开始+1结束−1,先把同timestamp delta合并。在相邻不同事件点[t,next)内active常数,若等X加入。

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

选手可确定排名

选手可确定排名:传递闭包与总序一致性:与所有其他选手的胜负都能推导时,排名才唯一。

解题切入:reach[a][b]代表a可以推导胜b,Floyd传递闭包。对i若所有j≠i都满足reach[i][j]或reach[j][i]则相对关系完整。

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

IP频率Top10及并列分组

IP频率Top10及并列分组:第十名与十个频次层不同:返回(freq,IP列表)时先定义截止边界是否扩大。

解题切入:先Counter全部IP次数,再按频次把IP分组,组内排序,频次降序输出。默认累计IP数达K后停止,因此最后一组可能使结果超过K。

阅读这道题的独立深文 →

Next Step

把题目放回面试流程

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

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