先分岗位
Meta 的不同岗位和团队可能考不同内容。先核对 JD 与面试邀请,再选对应题型。
Question Study
本地面经库有 225 条来源 URL 去重后的记录,其中 221 条有正文;目前整理出 221 道代表练习题,其中 221 道已完成独立深文。题目清单仍在逐帖核对和补充。
Reading Guide
题目根据面经方向重新表述,其中可能包含站内攻略建议的训练题;它们不是公司的官方题库,也不保证下一场面试重复出现。
Meta 的不同岗位和团队可能考不同内容。先核对 JD 与面试邀请,再选对应题型。
相同核心考点只保留一条,后续的附加约束放在原题里练,避免把同一道题当成多道题刷。
先口述输入、输出和边界,再写核心方案;最后解释复杂度、失败路径和面试官可能追加的约束。
Featured Deep Dive
先把这道题的核心思路讲完整,再根据自己的目标岗位挑下面的题继续练。
实现带 key/field 的内存数据库:set/get、条件更新与删除、scan、TTL,再支持按时间戳查询历史值。
Deduplicated Question Map
同一题的追加条件合并在一条里。题目清单用于确定训练范围;具体流程和准备优先级见公司攻略。
实现带 key/field 的内存数据库:set/get、条件更新与删除、scan、TTL,再支持按时间戳查询历史值。
阅读这道题的独立深文 →Meta AI 迷宫题:修复打印、BFS 与带钥匙的单向门:从路径显示与重复遍历修复开始,解释单向地形、钥匙状态、前驱重建和最短路径的正确性。
解题切入:先最小化失败用例:打印器核对path是否含入口出口,避免先覆盖再判断类型;BFS在入队时标记访问,每个状态只排队一次,不能等出队再允许无限重复入队。
阅读这道题的独立深文 →Meta 游戏排行榜:全局、好友、本人排名与滚动分页:设计全局前十、好友榜、本人周围排名和滚动分页,解释精确排名、有序索引、热点与一致性取舍。
解题切入:用score-event(userId,season,eventId,revision,score)确定重复与乱序规则;权威存储拒绝旧revision,榜单按该版本更新,避免重试多加分。API分别提供global top、user rank、neighbors、friend top和cursor page。
阅读这道题的独立深文 →Meta 武器交易广告检测:图文证据、销售意图与分层审核:把武器识别与交易意图区分开,设计标签、候选召回、多模态精排、阈值、人工复核和新型物体评估。
解题切入:建立分层标签:物体是否武器、是否交易表达、是否政策违规、审核确信度。使用复核一致的人工标签和真实申诉结果;已删除记录存在选择偏差,未审核不等于负样本,需抽样审查全流量并保留采样权重。
阅读这道题的独立深文 →Meta DE 私密账号题:关注请求、活跃行为去重与双跳推荐:建立私密账号与关注请求数据模型,解释不同动作的活跃口径、重复事件、互相关注及双跳好友候选。
解题切入:先分离entities:user、account_privacy_history、follow_request、follow_relation_history、content、interaction_event。请求多次发送是多个请求事实,关系是否有效依据accept/revoke状态,不能把request_created直接join成好友。
阅读这道题的独立深文 →从一组单词中选出若干个,使选中单词之间及各单词内部没有重复字符,并最大化不同字符数;先解释回溯,再尝试位掩码状态压缩与迭代求解。
解题切入:先把每个词转成字符位掩码,内部重复字符的词直接跳过;迭代维护可达掩码,只有与已用字符不相交时才能选入。
阅读这道题的独立深文 →Meta 往返机票最低价:严格日期与索引并列规则:给出去程与返程每日价格,要求返程严格晚于出发,在线性时间找最低总价并返回日期下标。
解题切入:枚举返程j时,合法去程只在[0,j);维护此前最小D与对应最早下标。先纳入j−1,再用该去程与R[j]形成候选,保证日期合法。
阅读这道题的独立深文 →Meta 固定窗口平均值:滚动总和与流式处理:给定窗口大小k,输出每一个连续窗口的平均值,避免每个窗口重新求和。
解题切入:首窗口求和,之后每移动一步减去离开值、加入新值;sum始终等于当前窗口的k个元素之和。
阅读这道题的独立深文 →Meta 滑动中位数:有序窗口基线到双堆延迟删除:输出每个固定窗口的中位数,核对偶数窗口、重复值删除与实际数据结构复杂度。
解题切入:首个窗口排序,滑动时二分找到离开值的一个出现位置删除,再有序插入新值。重复元素值相同,删除任意一个相同值即可。
阅读这道题的独立深文 →Meta 合并两组有序区间:线性归并与闭区间边界:两组按起点排序的区间可能各自重叠,输出其并集的互不重叠区间。
解题切入:两个指针选择起点更小的下一个区间,相当于合并排序的merge步骤,确保处理顺序仍按起点排列。
阅读这道题的独立深文 →Meta 三组有序数组去重归并:指针同步推进:合并三组有序数组并删除重复值,在线性时间得到有序结果。
解题切入:每次从三组当前头部取最小值,向输出追加一次,再将所有等于该值的头部连续跳过。
阅读这道题的独立深文 →Meta 非负连续子数组存在性:零值与非空窗口:判断是否存在非空连续子数组,其和等于目标;利用非负约束做到线性时间常数辅助空间。
解题切入:扩张右端把新值加总;只要sum>target就收缩左端。非负性保证收缩不会增大和,而后续扩张不会减小和。
阅读这道题的独立深文 →Meta 连续子数组和计数:前缀频次与负数:统计和等于target的所有非空连续片段,解释初始前缀、计数顺序与重复前缀。
解题切入:区间[i,j)和等于target等价于prefix[j]−prefix[i]=target。扫到当前prefix时,所有此前prefix−target的出现次数都是以当前元素结尾的合法区间。
阅读这道题的独立深文 →Meta 恰好n种字符的最短子串:收缩到失去可行性:返回恰好包含n种不同字符的最短连续子串,说明恰好与至少的区别及并列规则。
解题切入:用计数字典追踪窗口每字符频次。右端扩张后,只要种类数>=n就尝试收缩;恰好n时先记录候选,再删左端一个字符。
阅读这道题的独立深文 →Meta 极差至少k的最短子数组:双单调队列:求最短非空连续片段,使最大值减最小值至少k;核对它与极差至多k的最长窗口题的不同收缩逻辑。
解题切入:维护递增队列low得到窗口最小、递减队列high得到最大;新元素淘汰队尾不再可能成为最值的旧候选。
阅读这道题的独立深文 →Meta 指定值T的近邻重复:严格小于窗口大小:只判断值T是否在两个相距严格小于K的位置重复,避免把其他重复值或等于K的距离算进去。
解题切入:只保存上一次T的下标。再次遇到T时,与最近位置的距离是当前T到此前所有T的最小距离;若它也不满足,更早位置均不满足。
阅读这道题的独立深文 →Meta 按值区间求和:单次扫描到多查询索引:在未排序数组中累加所有值位于闭区间[S,E]的元素,说明它与按下标区间求和的区别。
解题切入:单次查询直接扫所有值,若S<=v<=E则加v。无索引时所有元素都可能影响答案,O(n)已合适。
阅读这道题的独立深文 →Meta 年龄好友请求变体:包含阈值与百岁规则:按明确的年龄阈值计算有向好友请求数量,保留与常见标准题不同的等号和百岁限制。
解题切入:按年龄排序。每个发件a的合法收件区间下界为ceil((a+14)/2),若a>100再与100取max;上界a。二分算该闭区间内人数。
阅读这道题的独立深文 →Meta 刷题平台设计:判题沙箱、竞赛排名与已解题榜:设计代码提交、隔离判题、竞赛榜和累计已解题数榜,并分析存储、热点与结果一致性。
解题切入:API createSubmission包含idempotencyKey、problemVersion、languageVersion、codeHash。持久化QUEUED状态与outbox后返回submissionId,调度器把任务给worker;客户端轮询或SSE读取状态,重复提交不会重复创建同一请求。
阅读这道题的独立深文 →Meta 线上拍卖设计:出价顺序、截止时刻与实时推送:设计拍卖创建、竞价、关闭与支付,解释最高价原子更新、事件顺序和推送连接。
解题切入:数据库保存auction、bid、winner/order与revision。POST bid带requestId;在按auction串行的事务或single-writer分区中检查开放状态、截止、价格,写bid并更新最高出价与revision,再写outbox。
阅读这道题的独立深文 →Meta 直播评论设计:写入顺序、热点房间与断线补发:设计大规模直播评论、点赞与实时分发,说明SSE、消息序列、扇出合并和断线恢复。
解题切入:POST comment保存roomId/userId/commentId/content及审核状态,requestId去重;审核通过后在room分区生成sequence并发布。数据库是可恢复事实,pubsub负责实时分发,不只依赖临时channel。
阅读这道题的独立深文 →Meta 帖子与状态搜索:AND/OR、倒排索引与实时删除:支持用户文本状态的布尔搜索,分析有序posting交并集、索引更新、分片和权限。
解题切入:写入文档事实与outbox,consumer按统一tokenization/case/stemming策略生成unique term→docId posting;query必须使用同样分析器。是否去停用词会改变“全部词匹配”的含义,不能擅自删用户词。
阅读这道题的独立深文 →Meta 票务系统设计:五分钟保留、支付迟到与总量票:设计指定座位和generic admission两种库存,解释五分钟hold、支付慢或失败与避免超卖。
解题切入:座位状态AVAILABLE→HELD→SOLD,hold记录owner/token/expiresAt/version。创建订单在事务中检查并CAS一批座位,全成或全不成;GA则原子检查remaining>=qty再减可用量。
阅读这道题的独立深文 →Meta 分布式KV设计:分片、复制、读写一致性与故障恢复:设计持久键值服务,明确强一致或最终一致合同、热点键、版本冲突与扩容。
解题切入:路由按hash-range或虚拟节点分片,每shard选leader并复制持久日志;写ACK需满足承诺的复制/落盘策略。版本按leaderEpoch+logIndex生成,旧leader通过fencing禁止写入。
阅读这道题的独立深文 →Meta 四十线程内存缓存:线性化操作与淘汰锁:设计支持四十线程的内存KV缓存,解释锁分片、LRU更新、TTL与容量精确度。
解题切入:基线用hashmap+双向链表与同一mutex:get命中也移动到MRU,所以通常是写操作,不能只加shared read lock。put替换/插入后按同锁淘汰最旧节点,保证map与list一一对应。
阅读这道题的独立深文 →Meta 任务调度与过期清理:租约、取消和后台线程:设计可并发访问的任务调度服务,区分执行租约与过期时间,并防止清理线程误删新任务。
解题切入:单机map存job/version/expireAt,最小堆存(expireAt,jobId,version)。所有结构变更同锁;cleaner睡到最近deadline,新增更早任务用Condition通知,醒来重新检查当前时间而非相信sleep时长。
阅读这道题的独立深文 →Meta 商品价格追踪:抓取调度、历史去重与告警:设计价格历史与降价通知,解释商品标识、抓取频率、重试、变更判定和故障恢复。
解题切入:URL frontier按商家分队列,调度按变化频率/关注人数/失败backoff决定nextFetchAt;每域限并发与速率,robots与授权规则按实际站点。HTTP缓存验证和已有数据源减少重复下载。
阅读这道题的独立深文 →Meta 公司新闻聚合:RSS抓取、去重与最新Top X:从RSS获取多家公司新闻,提供指定公司最新X条,并处理重复、修订与抓取延迟。
解题切入:poller带ETag/Last-Modified条件抓取,失败指数backoff,记录source水位和fetch版本。每item用(source,guid)去重,guid缺失时以规范URL/hash生成训练标识,同时防不同文章碰撞。
阅读这道题的独立深文 →Meta 加权随机抽样:前缀二分到Alias常数查询:按城市人口或给定权重随机选择下标,比较百万次调用时的预处理与查询成本。
解题切入:前缀法构建累计权重prefix。抽ticket∈[0,W),用bisect_right找第一个prefix>ticket,重复前缀对应零权重自然被跳过。每个元素占恰好w_i个整数ticket,概率w_i/W。
阅读这道题的独立深文 →Meta 最大元素下标随机选择:水塘抽样与均匀性证明:数组最大值可能出现多次,以相同概率返回其中一个位置,使用常数辅助空间。
解题切入:遇到更大值时重置best与count=1,选它的下标。遇到相等最大值时count++,以1/count概率替换当前选择。遇到更小值不改变状态。
阅读这道题的独立深文 →Meta 数字串目标表达式:拼接、加减与开头负号:在数字串间插入加减号或直接拼接,列出等于target的所有表达式,并处理可选开头负号。
解题切入:状态(start,total,expression)枚举下一个数字块的终点。首块作为正值,也可按变体加负首块;之后对每块扩展+与−,走到末尾且total==target才收集。
阅读这道题的独立深文 →Meta 十进制字符串相加:整数溢出、小数对齐与规范输出:不用整串int或float转换,对任意长度非负十进制文本求和,删除多余整数前零与小数尾零。
解题切入:分别解析整数与小数,scale取两小数长度最大值;短小数在右侧补零,使两值都变为以10^−scale为单位的整数数字串。
阅读这道题的独立深文 →Meta Unix cd与路径简化:相对路径、根边界和字面点号:给定cwd和目标路径返回词法规范绝对路径,处理重复斜杠、.、..及普通的多点文件名。
解题切入:若target以/开头忽略cwd;否则拼cwd/target。按/切段,空段或.跳过,..弹一个已保存目录但根处不再上移,其他原样push。
阅读这道题的独立深文 →Meta Toeplitz矩阵:相邻对角检查与流式行:判断每条左上到右下对角线上元素是否相同,解释邻接充分性与按行读取。
解题切入:对每个r>=1/c>=1,检查matrix[r][c]==matrix[r−1][c−1]。每条对角是这些相邻关系的链,相等传递保证整条一致。
阅读这道题的独立深文 →Meta 从左首非零数消减:停止条件与终止证明:反复取最左非零值作为pivot,只向右消减连续不小于pivot的元素,累计每轮pivot。
解题切入:找最左非零位置left,取pivot=a[left]>0。向右每个满足a[j]>=pivot的元素减pivot;遇更小值终止本轮,answer加pivot。
阅读这道题的独立深文 →Meta 奇偶交替子数组:以右端点计数:统计相邻元素奇偶性不同的全部连续子数组,单元素也算合法。
解题切入:length是以当前右端点结束的最长交替后缀。若新值奇偶与上一个不同,length++;否则重置为1。
阅读这道题的独立深文 →Meta 滑板车旅程:最近右侧设备与实际骑行距离:从0走向target,找到最近未经过的右侧滑板车,骑最多10距离,累计骑行而非总路程。
解题切入:位置排序,扫描每辆s:s<position表示已越过,跳过;s>=target用不到。其他情况先步行到s,再骑min(capacity,target−s),累计这部分距离。
阅读这道题的独立深文 →Meta 网格最大表达式:固定方向与合法终点:从任意数字格开始,只直向右或向下读取交替数字和加减号,返回合法表达式最大值。
解题切入:枚举每个数字起点及两个方向。初值为首数字;接下来成对读取operator和digit,只有两格都合法才累计。每到数字终点更新best。
阅读这道题的独立深文 →Meta 动态两数组和:更新secondary与统计下标对:secondary可单点赋值,查询primary[i]+secondary[j]==target的下标对数量,并保留重复值贡献。
解题切入:用Counter记录primary与secondary值频次。赋值前先减少旧值计数,0则删键,再增加新值;同时更新secondary数组供下次找到旧值。
阅读这道题的独立深文 →Meta 矩阵连续变换:行列交换、反转与矩形旋转:按顺序执行行列交换、行列反转和顺时针旋转,核对当前维度与输入保留。
解题切入:行交换直接交换两行引用;列交换逐行交换两个位置。指定行反转用reverse,指定列反转交换上下对称元素。
阅读这道题的独立深文 →Meta AI 纸牌题:三张十五点、策略评估与可见信息:从合法抽牌修复到局部三数和策略,再对照已知牌序的全局最优搜索,解释为何不能保证每局满分。
解题切入:先修抽牌合法性:核验三个实体ID都在桌上、互不重复、点数和15,校验完整后才改变游戏状态。仅检查点数存在会错误允许桌上两张5抽出三张5。
阅读这道题的独立深文 →Meta LLM 评论建议:三候选、五十语言与成本预算:用户进入评论框时生成三条相关建议,在现有特征库、LLM网关、翻译、排名和限流组件上优化接受率、延迟与token成本。
解题切入:触发先去抖与权限校验,传postVersion/requestId/language与有限用户偏好。先读帖子可复用的三候选缓存;未命中走特征检索、短上下文生成、多候选去重、安全过滤、relevance rank,再返回三条。不要为同一用户反复focus重新付费生成。
阅读这道题的独立深文 →Meta UXR 用户只用一次:研究假设、招募与改进验证:面对非Meta应用一次性用户增加,建立可验证假设,选择定性研究方法并把发现转成可测试改进。
解题切入:与DS核对分母、cohort、埋点、版本、渠道、时间窗和季节因素;比例增加可能来自低意图渠道新增、计量错误或右删失,不先开展大规模访谈解释假象。
阅读这道题的独立深文 →Meta 一维消消乐:相邻重复段与连锁消除:不断删除相邻重复字符段,直到不能再消除,明确消除次序、大小写与栈的不变量。
解题切入:按最大等字符run读入,用栈保存尚未最终确定的段。栈内除顶段外都已经是不能消除的单字符;新不同字符到来时,顶段若count>=2才完整弹掉。
阅读这道题的独立深文 →Meta 自定义字符排序:计数、重复与未指定字符:按给定字符优先序重排字符串,保留每个字符的出现次数,并明确未列字符顺序。
解题切入:统计text频次,按order逐字符输出count份;再扫描原text,只输出不在order的字符。
阅读这道题的独立深文 →Meta 循环移位字符串分组:模二十六归一化:把所有字符可经同一循环位移转换的字符串归为一组,处理跨z/a边界、单字符和空串。
解题切入:以首字符为原点,把每个字符归一为(ord(c)−ord(first)) mod26,所得元组是分组key。
阅读这道题的独立深文 →Meta 保序列表差集:筛掉第二列表元素:返回只在第一列表且不在第二列表的元素,保持第一列表顺序与重复次数。
解题切入:先将second建set;扫first,若value不在set则append。first的访问顺序决定输出顺序,因此无需sort。
阅读这道题的独立深文 →Meta 严格递增子序列:tails二分与见证路径:求不要求连续的最长严格递增子序列长度,用二分维护不同长度的最小结尾。
解题切入:定义tails[k]为已处理前缀中长度k+1的递增子序列能达到的最小尾值。新value二分第一个>=value位置,替换该位置以降低尾部,或位于末尾则扩长。
阅读这道题的独立深文 →Meta 允许一次下降的最长连续片段:断点边界:寻找最长连续子数组,其中至多一对相邻元素发生下降,明确相等是否算break。
解题切入:记录最近下降边的右端previousDrop;遇新下降边时,窗口左端移到上一下降边的右端,从而排除旧坏边但保留新坏边。
阅读这道题的独立深文 →Meta 带parent指针的LCA:常数空间相遇:给两个有父节点指针的树节点,找最近公共祖先,使用对象身份比较且不保存祖先集合。
解题切入:把两条节点到根再到None的链看作可能相交的链表。a到None后切换到second,b到None后切换到first,直到对象相同。
阅读这道题的独立深文 →Meta 普通二叉树LCA:后序标记与缺失目标:给根与两个目标节点,找最近公共祖先,并在目标不属于树时返回不存在。
解题切入:后序为每个节点汇总两目标是否出现的2位mask;本节点是first置位1,是second置位2,子树mask按位或。
阅读这道题的独立深文 →Meta 树直径:边数、节点数与N叉两条最高分支:找树中任意两节点之间最长简单路径,解释后序高度、无需全局变量与N叉扩展。
解题切入:后序height[node]是从node向下最长边数。每个child贡献height[child]+1,取最大的two branches,穿过node路径为one+two。
阅读这道题的独立深文 →Meta 二叉树最大路径和:可延伸收益与两侧候选:在任意起终点的非空简单路径上求最大节点值和,处理负数与不经过根的答案。
解题切入:后序gain[node]表示必须含node且可向父继续接的最大单支和:node.val+max(0,leftGain,rightGain)。
阅读这道题的独立深文 →Meta BST所有节点平均值:空树与精确算术:遍历所有节点求平均,不把叶节点平均、层平均或BST范围查询混在一起。
解题切入:显式DFS每遇节点加val/count,同时push左右孩子。每节点访问一次,结束后total/count。
阅读这道题的独立深文 →Meta 全部根到叶路径和:累积状态与输出顺序:返回每条root-to-leaf路径的数值和,区别于目标和判定和任意路径最大和。
解题切入:栈携(node,rootToNodeSum),进入孩子加其值;只有到leaf才append,不在每个内部节点输出。
阅读这道题的独立深文 →Meta 树路径拼数字求和:十进制累积与深链:把每条根到叶节点数字拼成一个十进制数,再求所有路径数总和。
解题切入:状态prefix表示到父节点拼出的数,进入node后value=prefix×10+digit。leaf将value加answer,其他继续传给孩子。
阅读这道题的独立深文 →Meta 二叉树中序迭代器:延迟输出与摊还常数next:按左、根、右逐个输出节点值,不一次性复制全树,并解释hasNext和耗尽行为。
解题切入:初始化沿root.left链push;next弹栈顶node,输出node.val,再把其right子树最左链push。
阅读这道题的独立深文 →Meta 二叉树侧视图:左右边界与逆序变体:按每层最左或最右节点求侧视图,保留两侧结果并在需要时明确反向输出。
解题切入:BFS一层固定width,每层按left再right入队,处理第0个记leftView、第width−1个记rightView。
阅读这道题的独立深文 →Meta 岛屿大小查询API:预处理到常数查询:建立isSizeExist(size)接口,回答静态矩阵里是否存在面积恰好等于给定size的岛。
解题切入:遍历所有陆地,尚未访问则DFS/BFS完成整个分量,count每个格一次。结束该分量后再把count加入sizes集合。
阅读这道题的独立深文 →Meta 广告精排:标签、校准与预算约束:设计广告排序,解释特征、模型结构、概率校准和线上收入与用户体验取舍。
解题切入:从业务定义label:clicked是曝光后固定窗口动作,conversion可延迟;未等到转化窗的曝光不能直接标负。训练使用完整样本或延迟转化处理,按用户/广告主/时间拆分防副本泄漏。
阅读这道题的独立深文 →Meta News Feed 排序:新鲜度、质量与反馈循环:设计好友内容流的ML排序,兼顾互动、内容质量和用户长期价值,分析标签与拉取线程追问。
解题切入:候选来自关注关系、互动相近内容与新鲜探索,各通道保留source及采样概率。过滤删除/屏蔽/私密内容后再打分,召回覆盖需与精排单独衡量。
阅读这道题的独立深文 →Meta 短视频推荐:观看时长偏差、探索与实时兴趣:构建Reels式短视频推荐,区分完成率、有效观看和长视频天然时长偏差。
解题切入:日志以viewSessionId串起曝光/start/progress/end/skip,去重乱序,watchTime不能把重试progress累加翻倍。valid watch定义前后台/静音/可见性条件,自动播放不自动算满意。
阅读这道题的独立深文 →Meta Marketplace 推荐:买卖双方、库存与本地供需:推荐市场商品,兼顾买家需求、卖家曝光、公平机会和商品实时可用性。
解题切入:候选先按地点距离、商品类别、价格预算和有效库存缩小,再用用户/商品embedding召回。售出或撤下商品即时过滤;陈旧索引需要回读权威状态。
阅读这道题的独立深文 →Meta 餐馆推荐MVP:距离、营业与偏好学习:优化一个简单餐馆推荐系统,从可解释规则基线到用户偏好与实时餐馆状态。
解题切入:审计MVP失败:距离不合理、关门、偏好不符、评价偏差、重复推荐还是检索召回缺失。先量测availability命中和候选覆盖,别把全部问题归模型。
阅读这道题的独立深文 →Meta 活动推荐:报名、真实到场与参与黏着度:设计提高活动参与的系统,区分线上注册与线下到场,用带置信度的证据构造标签。
解题切入:建报名→有意参与→签到/加入→结束后反馈的漏斗;记录证据来源与confidence,verified签到可强标签,post/tag为弱标签,unknown不要直接负标。
阅读这道题的独立深文 →Meta 评论排序:对话结构、质量与负反馈:为帖子评论排序,利用线程上下文、相关性和对话质量,区别于主帖News Feed排序。
解题切入:建post/comment/reply关系与真实曝光事实,label为阅读、展开、有效回复、helpful反馈和hide/report。很多reply不一定优质,争吵也会提高reply量;人工质量与用户满意样本补充行为label。
阅读这道题的独立深文 →Meta 地点推荐从零构建:候选数据与冷启动:没有成熟行为数据时构建地点推荐,解释地点信息来源、去重、位置约束与初期反馈采集。
解题切入:数据层整合授权目录/商家自报/公共地理资料,建立stable placeId、别名、类型、位置、营业时间与sourceVersion;同名不是同地点,同址多店也不能强合。质量抽检与source conflict规则先于模型。
阅读这道题的独立深文 →Meta 图片版权风险识别:局部匹配、恶意文字与权利证据:检测上传图与受保护素材的相似关系,处理九宫格局部、翻拍与对抗文字,区分技术匹配和最终判定。
解题切入:数据池包括授权原图、变换正样本、相似题材但不同作品难负样本、已核申诉案例。train/test按作品ID隔离,防同原图变换泄漏;标签区分sameWork、regionMatch、rightsStatus与reviewDecision。
阅读这道题的独立深文 →Meta 智能眼镜相册问答:自然语言检索与两分钟回忆视频:从个人照片/视频中按自然语言寻找片段,生成两分钟回忆视频,解释检索、时间线和隐私。
解题切入:入库记录mediaId、owner、captureTime可信度、GPS授权状态、原始对象版本。提取图像/视频/文本embedding、可核元数据与关键帧;批处理成本按总分钟数,新增媒体增量索引。
阅读这道题的独立深文 →Meta LLM 客服Agent:检索、工具授权与人工升级:构建客户支持Agent,区分答案检索、账户查询、退款动作和升级人工,说明安全执行与评估。
解题切入:先建无需LLM的baseline知识搜索+意图路由,定义ticket解决/升级准则,再引入检索增强回答。文档分块带product/version/region/validTime,query检索先权限过滤并给引用。
阅读这道题的独立深文 →Meta 有害文本分类:标签边界、微调与阈值评估:给文本数据集训练有害内容模型,解释切分、baseline、类别不平衡、上下文与上线阈值。
解题切入:审计标签和数据:去重及近重复分组,同作者/同模板/同事件按group分割,再按时间留最终测试。用户引用辱骂举报、教育语境与攻击性使用可能字面相同,需上下文与政策判断。
阅读这道题的独立深文 →Meta AI 项目内容审核模块:提示、遮罩与服务端状态:在发帖前端与Node后端工程中增加违规内容检测和提示/星号遮罩,兼顾状态、绕过与误报处理。
解题切入:先画已有post draft→submit→server→render数据流,定位validator、persist和UI层。检测器输出policyVersion、contentHash、ranges、category、confidence,接口可由mock或真实模型实现。
阅读这道题的独立深文 →Meta 手写Self-Attention:形状、稳定Softmax与因果遮罩:从输入投影到QK缩放、遮罩、逐行归一化和加权V,给出可运行实现及对PyTorch的独立核对。
解题切入:先标形状:QKᵀ得到[n,m],除sqrt(d)抑制点积随key维度增加的方差;softmax沿key轴m而非query轴n,最后weights[n,m]乘V[m,dv]。
阅读这道题的独立深文 →Meta 稀疏矩阵相乘:非零连接、形状与抵消:用稀疏行字典表示矩阵,沿左矩阵非零中间索引连接右矩阵对应行,跳过无用零乘。
解题切入:普通三循环对每i/j/k都做乘法,即使大多0。稀疏行组织让A[i,k]非零时直接遍历B[k,*]非零,把乘积加到out[i,j]。
阅读这道题的独立深文 →Meta 最自豪的项目:为什么值得与个人影响:选择最近的真实项目,回答为何自豪、本人改变了什么及结果如何验证。
解题切入:先一句说明项目与用户问题,再解释为什么这件事对自己重要:难题解决、用户结果、团队成长或可靠性改善,避免仅因技术名新。
阅读这道题的独立深文 →Meta 项目深挖:模型、数据、训练与工程范围:解释近期项目从目标到技术实现,能回答模型、数据、训练过程、结果和系统规模。
解题切入:先用一张口头数据流:用户/输入→处理/模型→服务输出→反馈;说明原始问题、baseline与上线边界,避免开场就列工具。
阅读这道题的独立深文 →Meta 最难技术挑战:机制、取舍与验证:讲一个真实技术难点,说明为什么难、探索哪些解法以及如何验证最终选择。
解题切入:挑战必须落到具体机制:数据依赖、并发竞态、延迟尾部、分布漂移或兼容性,而非只说deadline紧。把未知因素与已有约束分开。
阅读这道题的独立深文 →Meta 模糊项目:信息不全时如何启动:在目标或要求不清时推进项目,解释澄清、假设、最小试验与决策边界。
解题切入:区分不明确的目标、用户需求、技术可行性与owner;先问谁决策、成功指标和不可违反约束,避免把所有模糊当“需求文档缺”。
阅读这道题的独立深文 →Meta 项目中途变方向:重新定界与迁移成本:项目做到一半目标或范围改变时,如何评估已投入工作、重排计划并稳定协作。
解题切入:先说变更原因与权威决策来源,区分新增scope、需求取消、方向转换和资源减少。
阅读这道题的独立深文 →Meta 失败与挫折:承担责任和修复机制:讲一个失败或未达目标的项目,解释本人判断、影响、补救与复发防线。
解题切入:选有真实失败且有本人决策成分的经历,不把“别人不配合所以失败”当责任反思。
阅读这道题的独立深文 →Meta 同事冲突:事实、选项与解决后关系:描述与同事意见冲突,解释协作决策和解决后对方反应的证据。
解题切入:先给对方合理目标与担忧,区分技术分歧、职责冲突、优先级与人际误解。
阅读这道题的独立深文 →Meta 与经理或领导不同意:坚持、服从与风险升级:讲不同意领导决定的经历,说明证据、决策权及最终执行,不以谁赢作唯一结果。
解题切入:说明领导目标与自己分歧的具体内容;对商业优先级、技术细节与不可接受风险采用不同沟通强度。
阅读这道题的独立深文 →Meta 难相处同事:协作方式和边界调整:面对困难工作关系,如何保持任务推进、理解约束并改善合作。
解题切入:选工作行为问题,不用身份、口音或性格标签定义“难”。描述可观察行为如响应延迟、review反复或优先级不一致。
阅读这道题的独立深文 →Meta 收到关键反馈:理解、行为改变与追踪:解释经理或同事的constructive/critical feedback,展示具体行动和后续证据。
解题切入:选真实且能说明成长的反馈,不把一般表扬说成critical feedback。
阅读这道题的独立深文 →Meta 给他人建设性反馈:行为证据与支持:说明如何给同事或成员反馈,关注可观察行为、影响和可采取的改进。
解题切入:反馈围绕真实行为和项目影响,不公开羞辱或评价人格;先确定自己有足够上下文。
阅读这道题的独立深文 →Meta 没赶上期限:预警、取舍与恢复计划:讲无法按时交付的经历,解释何时发现、怎样沟通与如何保护业务目标。
解题切入:用真实错过或明确面临风险的期限,区分本人估计失误、依赖变化和scope增加,不只怪外部。
阅读这道题的独立深文 →Meta 调整优先级:比较价值、依赖与机会成本:面对多个冲突任务或需要改变priority,说明排序依据、沟通与停止旧工作。
解题切入:先列任务目标、期限、风险、依赖与资源,不把“最响的人”当优先级规则。
阅读这道题的独立深文 →Meta 跨职能项目:共同目标、接口与影响力:讲与其他团队或职能协作的项目,证明如何对齐需求、解决依赖并推动结果。
解题切入:明确参与职能/团队、各自目标和权责;不要把“发了几封邮件”包装成跨组织领导。
阅读这道题的独立深文 →Meta 与PM协作:问题定义、技术取舍和反馈:说明与产品经理合作的经历,连接用户目标、可行性与迭代验证。
解题切入:先确认用户问题与成功指标,PM负责产品判断但技术可行性和风险需工程主动提供证据。
阅读这道题的独立深文 →Meta 导师经历:从解题帮助到独立Ownership:解释如何帮助工程师成长,并将junior指导与senior向更大范围发展的目标分开。
解题切入:先说对方阶段、希望成长的能力与共同设定目标。junior可能需要调试/交付基础,senior可能需要跨团队决策,不以职级标签替代具体能力证据。
阅读这道题的独立深文 →Meta 实习Role Model:具体品质与模仿实践:描述实习中佩服的同事,说明观察到的行为及自己如何学习。
解题切入:选真正一起工作过且有具体观察的人,解释为什么其某种品质重要,而非只因职位高或公司光环。
阅读这道题的独立深文 →Meta 成长领域与新知识:计划、实践和反馈:回答正在学什么、哪里可以改进及未来发展方向,避免伪缺点或空泛学习清单。
解题切入:选与当前职责有关的真实能力缺口,说明识别依据是反馈、失败、下一阶段需求还是自己观察。
阅读这道题的独立深文 →Meta 技术方向与Roadmap:组织问题到可验证路径:描述主导技术方向或新initiative,解释长期收益、跨团队取舍和工程速度。
解题切入:先界定组织问题与范围,技术方向不是自己选一个框架。给当前成本、业务风险与后续机会的证据。
阅读这道题的独立深文 →Meta 成员表现不足:诊断、支持与明确期望:讲直属成员underperforming的经历,区分能力、动力、目标和环境问题。
解题切入:先给角色期望与具体行为证据,确认标准清晰且资源可用,不把单次失误直接贴低绩效标签。
阅读这道题的独立深文 →Meta 招聘决策:团队能力缺口与评价依据:按团队需求决定新成员画像,解释一致评价、取舍与入职成功标准。
解题切入:先做能力/项目/维护负担盘点,区分当前急需与长期方向。招聘画像不是复制现有最强同事,也不是列无限技能要求。
阅读这道题的独立深文 →Meta 团队产出下降:系统诊断与直接行动:发现团队performance下降时,如何用交付、质量、依赖与负担证据定位并改善。
解题切入:先固定performance口径与基线,不把commit数量或story point作为不同团队可直接比较的产出。
阅读这道题的独立深文 →Meta 团队健康与流失风险:早期信号和机制:发现团队士气、健康或attrition问题时,如何了解原因、采取行动并验证变化。
解题切入:信号来自可授权的1:1、协作行为、工作负担、调查与实际流失,不根据传闻给个人下结论。
阅读这道题的独立深文 →Meta 为什么选择Meta:岗位问题与自身证据:回答Why Meta,将兴趣落到目标团队的问题与自己可验证的贡献。
解题切入:先结合实际岗位与面试交流确定问题范围,不能假设全公司同一技术栈或每天都做大模型。
阅读这道题的独立深文 →Meta 文化差异:具体工作方式与适应:比较工作环境差异,谈决策、反馈和协作方式,不将个人经历概括为整家公司定论。
解题切入:仅描述自己实际经历或面试中已核对的团队工作方式,区分个人偏好、团队做法与全公司政策。
阅读这道题的独立深文 →Meta 最不喜欢的工作:原因、行动和承担:谈此前工作中不喜欢的部分,保留职业表达并说明尝试过的改变。
解题切入:选具体流程/任务/条件,不用人格指责。说明它对用户、效率或自己成长造成什么影响。
阅读这道题的独立深文 →Meta 工作中最好的一天:价值与共同成果:用一天的具体经历说明什么样的工作结果让自己获得成就感。
解题切入:选真实可解释的一天,不一定是最大项目或获得奖项;关注当天发生什么、为什么重要。
阅读这道题的独立深文 →Meta 工作中最糟的一天:压力下的行动:描述困难一天,重点是如何处理影响、求助、沟通和事后恢复。
解题切入:说清情境和影响,不把情绪或对他人指责当全部答案。
阅读这道题的独立深文 →Meta Quack排序:随机两端弹出与重复段判向:Quack每次随机弹出当前最小或最大值,利用下一个不同值判定上一段来自哪端,线性恢复有序结果。
解题切入:相邻两次弹出的不同值x/y给判向:若x<y,则x不可能是当时最大值,因为y那时仍在结构里;x必来自最小端。若x>y,则x来自最大端。
阅读这道题的独立深文 →Meta 静态应用国际化:翻译Key、语言回退与版本:为静态应用设计多语言内容交付,兼顾消息键、复数格式、语言回退和缓存版本。
解题切入:源代码用稳定messageKey与结构化参数,翻译catalog按locale分文件,内容团队在版本管理流程校验占位符/格式。原文改动要能标记翻译过期,key不直接等于完整源句。
阅读这道题的独立深文 →Meta Android照片上传库:持久队列、分片与取消:设计可供宿主应用调用的照片上传SDK,明确生命周期、离线重试、断点续传和事件回调。
解题切入:把模块分为UploadFacade、TaskStore、SchedulerAdapter、MediaReader、Transport与ProgressStream;宿主注入认证、网络/政策与日志,避免SDK持有Activity造成泄漏。task metadata持久化,回调订阅随生命周期解除。
阅读这道题的独立深文 →Meta 相册自动壁纸:触发语义、预取与系统限制:从授权Facebook相册选图,在设备交互事件下更新壁纸,分离同步、选图与本地应用。
解题切入:云端相册adapter只取授权媒体与版本,后台按网络/电量预算同步缩略和候选,存本地轮播队列。删除/权限撤销从候选移除,不在触发时临时下载巨大图片。
阅读这道题的独立深文 →Meta Quest遥测API:结构化事件、离线批次与开销:设计设备端log/telemetry接口,解释业务调用、schema、离线缓存、上传和采样。
解题切入:接口emit(eventName,schemaVersion,attributes,priority)采用已注册typed schema,自动填eventId/session/deviceTime/monotonicOffset/appVersion。禁止调用方任意记录大对象或敏感文本,size上限在边界拒绝/截断有明确标记。
阅读这道题的独立深文 →Meta 好友棋局:权威状态、对手落子前悔棋与排行:设计好友对战、走棋与允许窗口内undo,核对悔棋和对手新落子的并发竞争。
解题切入:game记录players/board/turn/status/revision,move带moveId/expectedRevision。服务器验证玩家身份、turn和棋规后原子提交事件与新board,客户端只是预测显示。
阅读这道题的独立深文 →Meta 订餐配送设计:订单、支付、商家与骑手状态:设计餐食下单与配送链路,拆分订单确认、支付、配餐、派单与追踪的可靠性。
解题切入:customer请求带orderRequestId,服务器校验菜品/价格版本与商家可接单状态,创建order及outbox。支付授权和商家接单按业务选择顺序,失败补偿退款/取消,不承诺跨外部服务原子事务。
阅读这道题的独立深文 →Meta 云文件存储:配额、用户合并与备份恢复:实现全局文件名、前缀TopN、用户容量、合并以及用户文件快照,维护空间与归属不变量。
解题切入:用files[name]=(owner,size)、capacity[user]和used[user]三张表。不变量used等于该用户所有现存文件大小之和,且used≤capacity。不要一处存总容量、另一处却把同字段解释成剩余额度。
阅读这道题的独立深文 →Meta 云文件压缩:复制、容量收缩与可逆重命名:实现前缀加后缀检索、复制文件、按大小淘汰以及压缩解压,保证失败不改变状态。
解题切入:维护files→(owner,size)、capacity与used,所有操作以同一计数不变量为中心。copy必须先检查源存在、目标未占用、目标标记类型及owner容量,再写入;复制dict不能遗漏容量。
阅读这道题的独立深文 →Meta 数据库Checkpoint:恢复剩余TTL与前缀查询:实现两级键值、过期字段、检查点和恢复,区分字段前缀与值前缀,避免恢复后立即失效。
解题切入:当前表只存(value,expireAt),get/scan/delete统一用t<expireAt判断活性。无TTL用None,零TTL不在本训练合同内。不要把没有TTL当作已经过期。
阅读这道题的独立深文 →Meta 内存KV版本回滚:快照不可变与新分支:实现保存版本与回滚当前状态,明确回滚后写入、旧版本保留和版本ID分配。
解题切入:先实现可检查的全量复制基线:current是可变dict,versions[id]是创建时的独立dict。checkpoint做拷贝,rollback也拷贝,杜绝当前写操作污染版本。
阅读这道题的独立深文 →Meta 银行待接受转账:Activity、到期退款与幂等:实现创建、存取、交易活跃度排名与限时接受转账,保证冻结资金只结算或退回一次。
解题切入:账户表分balances和activity,成功存取更新各自指标,失败操作不计Activity。TopN对所有账户按(-activity,id)排序,因此零交易账户也参与,n超过账户数返回全部。
阅读这道题的独立深文 →Meta 定时转账与合并:预留资金、取消和支出排名:设计定时到账、截止前取消、账户合并与TopSpending,明确待执行记录的身份迁移。
解题切入:用balance/spending/job三组状态和(due,serial)heap。schedule先验证不同且存在账户、额度足够,再扣款写pending。deposit不增spending,withdraw立即增,schedule只有实际执行增。
阅读这道题的独立深文 →Meta Messenger:消息确认、多设备与离线投递:从产品语义设计聊天,先区分发送、送达与已读,再确定消息存储和重连同步。
解题切入:接口send(conversationId,clientMessageId,body)、sync(afterSeq)、ackDelivered/Read(upToSeq)。membership权限在写与读都检查,消息包含sender/device、serverSeq、createdAt,媒体另走上传服务。
阅读这道题的独立深文 →Meta Instagram:媒体发布、关注Feed与权限变更:设计照片发布与关注流,将上传完成、帖子可见性、Feed分发和私密账户权限分开。
解题切入:client先创建uploadSession拿受限上传地址,上传后hash校验/转码生成variants。createPost带requestId引用READY媒体,post record原子发布并写outbox,失败清理孤儿媒体,不创建半成品Feed卡片。
阅读这道题的独立深文 →Meta Trending Hashtags:窗口计数、增长与反作弊:设计趋势标签榜,明确总量与增长趋势的差异,处理迟到事件、删帖和刷量。
解题切入:事件包括postId/revision/eventId/author/eventTime/tags/region及create/delete/visibility change。规范化大小写/Unicode与标签切分规则固定,索引只处理有权限公开参与的内容。
阅读这道题的独立深文 →Meta Netflix视频播放:转码、CDN与播放会话:设计点播视频服务,拆分媒体制作、播放授权、清晰度切换和观看进度。
解题切入:入库pipeline校验源视频、转多码率/分辨率分片、生成manifest与字幕,完整variant可用后才发布assetVersion。对象存储是源,CDN分发immutable分片,manifest引用版本防止混片。
阅读这道题的独立深文 →Meta Web Crawler:抓取Frontier、主机限速与去重:设计可恢复网页抓取系统,区分URL去重、内容去重、调度公平性与网页变化。
解题切入:frontier记录canonicalURL、host、nextFetchAt、priority、state/lease。解析相对链接后标准化scheme/host/fragment,并按明确规则保留业务query;seenURL去重与内容hash重复是两层。
阅读这道题的独立深文 →Meta 配置服务:版本发布、最后可用值与缓存一致性:给多服务提供配置,明确发布原子性、环境隔离、动态更新与客户端缓存。
解题切入:管理面校验schema、类型、依赖和访问权限,创建不可变版本后CAS更新current指针。多key必须以完整bundle版本发布,避免读到新timeout和旧endpoint不兼容组合。
阅读这道题的独立深文 →Meta 个人音乐TopK:评分口径、预计算与首次读取:设计用户音乐品味榜,区分统计最常听与推荐未来偏好,处理首次读取。
解题切入:播放事件带eventId/user/item/session/sequence、有效播放时长与eventTime;session增量或最终汇总只选一致口径,避免每个heartbeat累计完整时长翻倍。
阅读这道题的独立深文 →Meta 半径内商铺:空间索引、精确距离与分页:给定坐标和半径查找全部商铺,使用空间候选索引与精确距离过滤,处理跨界和更新。
解题切入:商铺记录id/location/version/status,空间索引用网格/geohash/树按经纬度定位。根据radius选择覆盖cell集合,而非只查中心一个cell;索引返回候选后做精确球面距离≤radius。
阅读这道题的独立深文 →Meta WhatsApp Status:到期、受众与搜索权限:设计限时状态发布、观看与搜索,将权限与到期检查放到读时,避免搜索索引泄漏。
解题切入:发布记录statusId/owner/mediaRefs/text/createdAt/expireAt/audienceVersion/revision,媒体先READY再发布。接口publish(requestId)、listVisible、view、delete、search(query),所有接口验证owner或受众权限。
阅读这道题的独立深文 →Meta 广告点击聚合:1亿请求/秒、去重与仪表盘:从每秒1亿点击请求的显式规模出发,估算网络与持久日志,设计可重放、可修正的广告统计链路。
解题切入:先算物理量:100M/s即每日8.64万亿事件。若单事件100B,payload约10GB/s、864TB/day,三副本约2.592PB/day,均不含协议/索引/压缩。若500B则50GB/s、4.32PB/day;容量选择必须以真实event size和保留天数为依据。
阅读这道题的独立深文 →Meta 最多删K字符成回文:双指针分支与区间DP:将最多删1个、2个和K个字符合并为同题变体,说明固定小K与一般K的复杂度区别。
解题切入:双指针从两端跳过相同字符;遇到冲突时任何回文结果必须删除左端或右端至少一个。分别递归剩余区间并减少budget,两支取OR;budget0时冲突立即失败。
阅读这道题的独立深文 →Meta 最长回文子序列:区间DP与一行空间:返回可跳过字符的最长回文长度,解释相等两端递推和滚动数组依赖。
解题切入:dp[l][r]表示区间内最长回文子序列。l=r为1;text[l]=text[r]时两端可同时选,得到2+dp[l+1][r-1];不等时至少一个端点不选,取max(dp[l+1][r],dp[l][r-1])。
阅读这道题的独立深文 →Meta 最长回文子串:奇偶中心扩展与Tie规则:找连续回文子串,通过奇偶两类中心覆盖所有候选,并明确并列选择。
解题切入:每个字符是奇数回文中心,相邻间隙是偶数回文中心。对每中心同时向左右扩展,只要字符相同就得到更长合法连续回文。
阅读这道题的独立深文 →Meta 手写LRU Cache:双链表、更新与零容量:用哈希表和双向链表实现get/put,维护最近使用次序和容量边界。
解题切入:map[key]直接定位Node,Node含key/value/prev/next;get摘下节点并接到tail前,无需扫描。节点保留key,淘汰时可以从map删除对应键。
阅读这道题的独立深文 →Meta 第K大:0/1起始排名与三路Quickselect:核对第K大和索引K的区别,用三路随机选择处理重复值,并证明期望复杂度。
解题切入:把降序rank转换成升序target=n−1−rank。普通第2大rank1,0起始位置2则rank2,这是不同接口而非算法争论。
阅读这道题的独立深文 →Meta Random链表深拷贝:三轮交织与恢复原链:复制next和random指针,使用原节点相邻的副本作为映射,完成后还原输入。
解题切入:第一轮把副本插在原节点之后,A→A′→B→B′。这样不建map也能从任意原节点x以x.next找到副本,保存原后继用于下一步。
阅读这道题的独立深文 →Meta Clone Graph:身份映射、环与重边:复制起点可达图,保留自环、邻接顺序和重复边,避免相同值节点被合并。
解题切入:map从原Node到新Node,以起点创建副本并入队。处理每条neighbor边,未见节点先创建并记录,再入队;无论是否已见都向当前副本邻接表追加对应副本。
阅读这道题的独立深文 →Meta Valid Number:小数与指数的明确语法:按ASCII十进制语法解析有效数字,分别验证尾数、符号、小数点和整数指数。
解题切入:先消耗可选符号,再消耗整数digits;可选点后消耗小数digits,两部分总数至少1。只有点/只有符号不能通过。
阅读这道题的独立深文 →Meta 最少删除无效括号:原地两遍与空间口径:保留普通文字,只删除最少数量的圆括号,并实现可变字符数组上的常数辅助空间。
解题切入:从左向右记录balance并用write压缩保留字符。遇到)且balance0,这个右括号没有任何左侧可匹配开括号,必须删除;其他字符写入,保留普通文字。
阅读这道题的独立深文 →Meta 最少补括号:无法匹配的闭括号与剩余开括号:求插入单个圆括号的最少次数,区别于删除和特殊双闭括号规则。
解题切入:opened记录尚未匹配的开括号数。遇(加1,遇)且opened>0则匹配一个;否则这个)前必须补一个(,added加1。
阅读这道题的独立深文 →Meta 括号最大深度:前缀峰值与非法输入:计算混合文本中的圆括号嵌套深度,同时核对输入是否完整匹配。
解题切入:维护当前balance,遇(加1并更新best,遇)减1。任意位置balance<0表示缺开括号,直接拒绝;末尾balance非0表示缺闭括号。
阅读这道题的独立深文 →Meta 三类括号匹配:栈顶类型与非括号字符:验证圆、方、花括号嵌套,保留顺序约束并说明混合文字的处理。
解题切入:遇开括号压栈,遇闭括号先检查非空,再弹栈并比对对应开括号。不符立即False,最后要求栈空。
阅读这道题的独立深文 →Meta 向量点积:稀疏索引、排序双指针与RLE:将稀疏向量重复调用和连续重复值压缩归为输入表示变体,避免展开巨大向量。
解题切入:稀疏hash map只保留非零坐标,dot遍历非零数较少的一侧并查另一侧,均摊O(min(nnzA,nnzB))。重复dot不反复扫描/压缩原dense数组,构造一次供后续复用。
阅读这道题的独立深文 →Meta K个最近点:平方距离、最大堆与并列次序:返回离原点最近的K个二维点,用大小K的最大堆保留候选,并计输出排序成本。
解题切入:heap顶应该是当前最差候选,因此Python minheap存(-distance,-index)。更大distance或更晚index对应更负元组,位于顶便于替换。
阅读这道题的独立深文 →Meta 最少箭射气球:闭区间端点贪心:对闭区间气球选择最少射击位置,使用最早结束点覆盖,并处理相接端点。
解题切入:按right升序,遇第一个尚未被覆盖区间时,在其right射箭;随后所有left≤该射点的区间都覆盖,不需要更新已有射点。
阅读这道题的独立深文 →Meta Word Ladder:单字符变化、BFS与桶扫描:求字典内逐步替换一个字符的最短词链,构造通配桶避免每次比较全部单词。
解题切入:构造每词L个pattern,例如hot→*ot/h*t/ho*。同pattern词之间只差该位置,因此可作为无权图邻居。*不属于输入字符,避免与真实字符混淆。
阅读这道题的独立深文 →Meta 整数转英文:三位分组、零段与格式:将整数转英文词组,分离百位组和千/百万/十亿尺度,处理空组与空格。
解题切入:每三位组成一组,独立处理0..999:百位输出One..Nine Hundred,余数小于20用独立词表,20以上先十位词再个位。不能把11读成Ten One。
阅读这道题的独立深文 →Meta Permutation in String:定长窗口与差异计数:判断文本中是否包含pattern的任意排列,维护字符重数和不匹配键数量。
解题切入:排列的必要充分条件是窗口长度等于pattern长度且各字符频次相同。窗口必须定长,不能只看包含了pattern所有不同字符。
阅读这道题的独立深文 →Meta 最多区间重叠的位置:闭端点事件顺序:返回覆盖区间数最多的坐标,用扫描线处理同坐标起止,明确并列和闭区间边界。
解题切入:分别累计每坐标startCount和endCount,排序所有不同端点。扫描到x先加起点,再计算峰值,最后减终点;闭区间终点在x仍参与覆盖。
阅读这道题的独立深文 →Meta BST最接近目标:单路下降与并列值:利用二叉搜索树次序寻找最接近target的值,并说明树高与有效BST前提。
解题切入:从root维护best,按(abs(value−target),value)字典序比较。target小于当前值只进入left,大于只进入right,相等立即返回。
阅读这道题的独立深文 →Meta 后序求树最大值:返回子问题、不用全局状态:在限定Postorder与禁止共享状态的条件下,让每个递归返回其子树最大值。
解题切入:先递归left,再递归right,最后处理node.value,所以顺序为后序。左右调用只返回各自子树最大值,当前局部选择max(自身,存在的左答案,存在的右答案)。
阅读这道题的独立深文 →Meta 树的最长递增路径:子值更大并返回整条路径:找任意节点开始的向下严格递增路径,用后序长度和后继指针避免反复复制路径。
解题切入:后序求down[node],初值1;仅对更大值child考虑1+down[child],选择最大并记following[node]。child不更大时递增链在边界断开,但其内部仍可独立成为全局最好起点。
阅读这道题的独立深文 →Meta 判断完全二叉树:层序第一个空位之后:核对最后一层从左填满的定义,用BFS空位标记验证,而非高度或满树判断。
解题切入:层序队列从root开始,真实节点把left/right按顺序入队,包括None。遇第一个None设置gap;之后遇任何真实节点就False。
阅读这道题的独立深文 →Meta 树的垂直列序:BFS、列坐标与同位置顺序:按左到右列、上到下行输出二叉树,用BFS保留同坐标的左右遍历次序。
解题切入:queue存(node,col),BFS出队把value追加到columns[col],孩子按left/right入队。BFS天然保证行升序,同层顺序由左先入队确定。
阅读这道题的独立深文 →Meta 租车预订去冲突:按输入顺序接受或拒绝:逐条判断预订与已接受日期是否重叠,避免排序改变先到先接受政策。
解题切入:已接受区间互不重叠,维护按start排序的starts和accepted。新预订bisect找到插入位,只需看前驱end≥start或后继start≤end是否冲突。
阅读这道题的独立深文 →Meta Carpool容量:上下车事件与同站交接:将每段乘客区间转为位置差分,扫描验证全程人数不超过容量。
解题切入:每trip在start加people,在end减people,按位置累加并检查capacity。把同坐标delta先合并,得到离开该站后的负载,避免同站上车先处理制造瞬间假超载。
阅读这道题的独立深文 →Meta 租车库存SQL:某日结束时租出比例:按城市和车型算已租车辆/库存,明确车辆粒度、租赁区间与重复事实去重。
解题切入:先筛当日confirmed租赁,SELECT DISTINCT car_id得到占用车辆集。租赁事实一车多单不能直接join后COUNT(*)当库存,否则分母被放大。
阅读这道题的独立深文 →Meta 司机动作配送时长:分司机时钟与多订单:根据travel/pickup/dropoff动作和地点行驶时间,计算每个订单从取餐到交付的耗时。
解题切入:每司机维护location和clock,travel查(from,to)时长、clock增加并更新location。不同司机穿插动作不能共享一个总时钟。
阅读这道题的独立深文 →Meta 租车新店选址:需求、供给与增量利润:用可获得数据评估新租车门店,区分市场需求、车队约束和对旧门店的蚕食。
解题切入:需求数据分现有搜索/无车拒单/实际预订、机场或交通客流、旅游与商务季节性;未转化搜索不等于可获订单,需去重用户/时间并识别价格与可用性影响。
阅读这道题的独立深文 →Meta 管理层Dashboard:决策问题、指标合同与验证:为租车业务领导层设计仪表盘,从决策频率倒推指标粒度与数据更新。
解题切入:访谈stakeholders形成决策清单与可行动阈值,再定义指标合同:收入gross/net、出租率分母、预约/实际取车、取消和跨店订单口径。每个指标要owner、数据源、刷新时间与已知延迟。
阅读这道题的独立深文 →Meta 租车数据模型:预约、实际租赁与车辆快照:设计租赁服务实体关系与事实粒度,处理跨店还车、车型和车辆状态变化。
解题切入:dim_user、dim_car、dim_location、dim_date;fct_booking一行一个预约,fct_rental一行一次实际取还。一用户多预约/租赁,一车多时间不重叠rental,预约与实际关系需支持未履约/变更,不能默认一对一完整。
阅读这道题的独立深文 →Meta 餐厅用户忠诚度:复购、留存与真实增量:设计提高餐厅顾客忠诚度的分析和实验,区别订单量、参与度和长期留存。
解题切入:定义cohort首购顾客、30/60日同餐厅复购率、复购间隔、留存和净贡献;分母是有完整观察期的首购用户,不把昨天首购的未成熟cohort混入。
阅读这道题的独立深文 →Meta 餐厅上线后收入下降:分母、渠道与因果分析:分析新产品上线后的餐厅收入或平均收入下降,先验证指标再分解订单、客单价与构成。
解题切入:先验证埋点、ETL/支付账本、时区和延迟,确认变化真实。平均收入分解为总收入/活跃餐厅数,开店增加低量新店会改变构成,需same-store cohort比较。
阅读这道题的独立深文 →Meta 餐厅SQL:Pickup/Delivery比与Pickup占比:按餐厅统计完成订单,明确比值、占比、零分母和无订单餐厅。
解题切入:从restaurant出发LEFT JOIN订单,在ON中筛状态和履约类型,保留没有订单的餐厅。若WHERE筛o.status,会把空右表行去掉,意外退化inner join。
阅读这道题的独立深文 →Meta 餐厅类型Top3 SQL:全体收入分母与Tie:按类型聚合净收入,取前三类型并算相对所有类型的收入占比。
解题切入:一个CTE按restaurant_type SUM收入,窗口SUM(revenue) OVER()在LIMIT之前计算全体类型总收入。最终ORDER BY revenue DESC,type LIMIT3,逻辑顺序保证分母未被Top3过滤。
阅读这道题的独立深文 →Meta 观看时长SQL:Session粒度、用户与类型:汇总用户某日各类型观看时长,区分累积播放点、时长增量与多标签连接。
解题切入:筛选指定day,join video维表,按user_id/genre SUM seconds。秒与分钟输出转换单独明确,不能将session数当watch time。
阅读这道题的独立深文 →Meta 观看累计SQL:Full Outer Join与可重复重算:合并昨日累计与今日观看,保留只在一侧出现的用户,并处理快照重跑。
解题切入:先今日按user COUNT(DISTINCT video_id),昨日读取user total。FULL OUTER JOIN同时保留旧用户今日不活跃与新用户昨日不存在。
阅读这道题的独立深文 →Meta 餐厅订单模型:菜品明细与季节菜单版本:建立订单、菜品、菜单和司机事实关系,保留成交时价格与季节菜单。
解题切入:dim_user/restaurant/item、fct_order和fct_order_item,order→items一对多。item维度的身份与menu里的价格/可售状态分开,menu_item桥关联menuVersion、item及effectiveFrom/To。
阅读这道题的独立深文 →Meta Reels对Newsfeed的影响:增量、替代与质量:评估短视频对Feed的影响,区分新增价值与原有内容消费的替代。
解题切入:指标覆盖整体DAU/retention、有效消费/满意度、创作者供给与收入,分解短视频/文本/照片贡献。观看时长是过程指标,负反馈、过度消费、加载/流量成本是guardrails。
阅读这道题的独立深文 →Meta Feed数据建模:多媒体内容、互动与DM分享:建模用户、内容和交互,支持文字图片视频以及一条内容分享到私聊。
解题切入:dim_user、content(contentId,author,type,createdAt,visibilityVersion)、media(assetId,type,metadata),content_media桥支持多图片/混合媒体,type可描述主格式但不能限制只有一个asset。
阅读这道题的独立深文 →Meta Instagram DAU下降10%:测量、分解与验证:结构化调查日活下降,先确认口径,再区分技术、产品与外部因素。
解题切入:先查独立登录/服务/埋点链路,比较事件量与去重用户,排除延迟、采样、SDK版本或身份合并变化。不能把采集故障当真实流失。
阅读这道题的独立深文 →Meta 预测下月流失:时间切分、标签与可行动性:定义流失标签并构建无未来泄漏的预测模型,把离线效果与干预收益分开。
解题切入:标签在T之后完整观察窗生成,特征只用≤T数据:最近/频次、互动深度、关注关系、体验错误等。不要用下月登录、下月投诉或未来聚合列当特征。
阅读这道题的独立深文 →Meta 广告排名A/B:收入与用户体验决策:设计新广告排序实验,在收入、体验和广告主价值之间建立预先决策规则。
解题切入:提前明确假设、主要收入指标分母、观察窗口、MDE和样本量。每user/session收入避免把增加广告次数和排序效果混为同一原因,曝光/填充量单独监测。
阅读这道题的独立深文 →Meta 小生意投广告:目标、转化测量与试验:回答准备投放广告的下一步,从业务目标和测量开始,再讨论素材、受众与可控测试。
解题切入:先定义业务转化与质量,例如有效预约/完成购买,而非点击量。测量链路要事件唯一ID、转化窗口和退款处理,用户授权/隐私限制与归因口径明确。
阅读这道题的独立深文 →Meta Pow:快速幂、负指数与数值边界:通过指数二进制分解加速乘方,处理负指数、零底数和固定宽度取反。
解题切入:先把负指数转倒数底数和非负指数,随后循环每轮若指数最低位1就result乘当前base,再平方base、指数除2。
阅读这道题的独立深文 →Meta 整数转Hex:负数补码与四位分组:把有符号32位整数转小写十六进制,负数按补码位模式输出。
解题切入:先与2^32−1做mask,把位模式解释为0..2^32−1无符号整数。Python负数右移符号扩展,若直接while n右移可能永不变0。
阅读这道题的独立深文 →Meta Next/Previous Permutation:枢轴、后缀与重复值:原地求字典序相邻排列,无下一项时按明确政策回绕,并合并前一排列变体。
解题切入:next从右找到最后values[i]<values[i+1]枢轴;右侧为非递增后缀,已经是该前缀下最大状态。没有枢轴则整个序列最大,reverse回最小。
阅读这道题的独立深文 →Meta 合并两排序数组:从尾写入与容量合同:将第二数组归并到第一数组预留空间,避免覆盖第一数组尚未读取的元素。
解题切入:i=m−1、j=n−1、write=m+n−1,比较两侧最大未处理值写到尾,再移动对应指针。这样写入位置始终不会覆盖first未读前缀。
阅读这道题的独立深文 →Meta 3Sum:排序双指针与两层去重:返回三个不同位置相加为零的唯一值三元组,保留重复数的可用次数但去重输出。
解题切入:排序后固定a[i],在后缀left/right找pair sum=−a[i]。total小增left、total大减right,由排序单调性安全排除一行候选。
阅读这道题的独立深文 →Meta Binary Tree Paths:进入/退出事件与输出成本:返回所有根到叶的路径字符串,使用共享当前路径和迭代回溯避免每节点复制。
解题切入:栈存(node,exitFlag)。进入时把value加入path并安排退出,先压right再left保证左先遍历。退出时pop当前值,恢复父路径。
阅读这道题的独立深文 →Meta 最多翻K个0:最长连续1的合法窗口:维护零数量不超K的最长窗口,解释每端指针只前进与非负预算。
解题切入:right扩一项,zeros增加是否为0;只要zeros>K,left前移并减去离开0的贡献,直到窗口合法。每轮best=max(best,length)。
阅读这道题的独立深文 →Meta 最长区间Max−Min不超Limit:两条单调队列:求最大值减最小值不超过阈值的最长连续子数组,区别最短超阈值题。
解题切入:lows维护值非递减索引、highs值非递增索引,队首是窗口最小/最大。入新值从尾淘汰被新值支配的候选,保存新索引。
阅读这道题的独立深文 →Meta K长窗口有没有重复:频次跨2阈值:为每个固定长度K窗口判断是否有任意重复值,区分指定值T和距离追问。
解题切入:counts维护当前窗口每值次数,duplicateKeys维护count≥2的值有多少。新值计数1→2时加1,2→3不再加;出窗2→1减1,3→2保持。
阅读这道题的独立深文 →Meta 二值矩阵最短路:8邻接、路径长度与前驱:在二值矩阵上求左上到右下最短路径,明确对角穿角政策并用前驱还原。
解题切入:BFS以起点入队并登记parent,出队按8方向枚举界内0格;入队即visited,第一次发现每格就是最短步数,不等出队再标记。
阅读这道题的独立深文 →Meta 最短路必须过某格:两次BFS与可重复路径:求起点到终点且必须经过指定坐标的最短行走路线,区分walk与不能重复格的简单路径。
解题切入:任意通过waypoint的walk可拆start→waypoint和waypoint→goal,两段分别至少是各自最短距离。因此总下界d(start,w)+d(w,goal)。
阅读这道题的独立深文 →Meta 墙与门:多源BFS求最近门距离:从全部门同时扩散,给每个空房填写最近门距离,保留不可达与墙。
解题切入:初始化将所有门以距离0入同一queue,不为每个房间分别BFS,也不按门顺序完成一个搜索再下一个。
阅读这道题的独立深文 →Meta 翻转一个0最大岛:分量标号与邻居去重:将已有岛预先编号,对每个0合并不同邻岛,避免同一岛重复计面积。
解题切入:一次DFS给每个旧岛componentId并存size,用独立labels保持grid不变。入stack就登记标号,避免同格多次入栈计数。
阅读这道题的独立深文 →Meta 矩阵置零:首行首列标记与原始状态:遇原始零将整行整列归零,复用矩阵边界作标记并避免新零继续传播。
解题切入:先保存原首行有零与原首列有零两个bool。内区间发现原0,把matrix[r][0]与matrix[0][c]置0作为行列标记。
阅读这道题的独立深文 →Meta 矩阵对角线输出:每条同方向而非Zigzag:按对角线分组,每条从上到下打印,明确行列坐标与反对角线定义。
解题切入:对total=0..R+C−2,合法row下界max(0,total−C+1)、上界min(R−1,total),column=total−row,按row升序收集。
阅读这道题的独立深文 →Meta 照片顺序恢复:无序相邻对与链端点:从无序相邻照片对还原一条序列,识别双向等价、重复边和非链输入。
解题切入:构无向邻接,合法链恰两个degree1端点,其余degree2。选一端点,沿邻居不是previous的方向不断走,得到完整顺序。
阅读这道题的独立深文 →Meta 局部最小值:相邻不同的坡度二分:在相邻值不同且边界视为正无穷的合同下,返回一个严格局部最小索引。
解题切入:比较mid与mid+1:若向右下降,右半必包含局部谷底;否则向右上升,左半必包含。相邻不等避免平坡无法判断严格谷底。
阅读这道题的独立深文 →Meta 黑盒老鼠找奶酪:逻辑坐标与物理回退:只能调用移动和当前位置检测接口,探索未知迷宫并保证失败时返回原位。
解题切入:DFS栈记录逻辑位置、下一方向和返回父格的方向,seen按可达坐标避免环。坐标是相对移动累积,不需要知道矩形大小或障碍地图。
阅读这道题的独立深文 →Meta 朝向机器人找目标:回退位置与方向不变量:只能前进和转向,探索未知迷宫;失败分支恢复进入位置及朝向,成功留在目标。
解题切入:DFS保存逻辑coord与当前heading,每个格按转向尝试四方向。每一轮实际robot转右,同时逻辑heading+1,两者始终一致。
阅读这道题的独立深文 →Meta 矩阵连续数值路径:加1有向图与重构:求4邻接且下一格恰好大1的最长路径,利用值顺序构成DAG并返回坐标链。
解题切入:每个合法边从值v到v+1,沿路径值严格上升,因此无环,即使矩阵里有重复值也成立。可按值降序处理动态规划。
阅读这道题的独立深文 →Meta Host BPS最高:流式CSV与指标选择:读取各host端口输入输出速率,先明确最高BPS定义,再流式聚合所有端口。
解题切入:CSV按行读取,每条根据metric取值,累加totals[host]。host可能多个端口,求host总率不是找单端口最大;大数字用整数保留精确,不转float。
阅读这道题的独立深文 →Meta 服务迁移巡检:双端口、未知结果与有界并发:探测旧123与新456端口,输出迁移状态并限制并发,区分端口事实与版本证明。
解题切入:旧新都open标both,旧open新refused为old-only,反之new-only,都refused为neither。任一unknown都保留两端详情并归unknown,不能与refused合并。
阅读这道题的独立深文 →Meta 文件TopN词频:分词、并列与精确计数空间:流式读文件计算最高频单词,明确大小写、标点、Tie与大词表的外部聚合。
解题切入:逐行正则取tokens,Counter更新,不read全文件字符串。casefold/Unicode策略若不同应替换词定义,不在无合同下把don’t合成一个词。
阅读这道题的独立深文 →Meta Goat Latin:元音、词序与后缀长度:按每个单词首字母和词序转换,保留大小写并计算增长的输出成本。
解题切入:对word index从1开始,首字符lower属于aeiou则保持word,否则word[1:]+word[0]。保留原字符大小写,不把全词lower。
阅读这道题的独立深文 →Meta 上传新包但仍旧版:证据链与发布检测:单host Apache部署场景中定位“上传成功但新功能没上线”,在禁止再发布时核对运行版本与更新机制。
解题切入:先复现具体URL、响应版本header/页面checksum,并比较主机本地端口、Apache入口与外部请求,确定旧版在哪一层。看Apache vhost/proxy映射,避免检查了错误进程。
阅读这道题的独立深文 →Meta 磁盘满导致网站故障:容量、Inode与占用释放:从服务故障定位磁盘/日志问题,区分空间与inode耗尽、已删除仍打开文件和复发机制。
解题切入:确认请求错误/服务状态与时间,查挂载点空间和inode分别是否耗尽。应用写目录所在分区与系统根分区可能不同,不能只看整体磁盘。
阅读这道题的独立深文 →Meta 单机Web挂了:逐层排查与消除单点:通过DNS、网络、监听、代理、应用和依赖逐层缩小故障,再设计恢复与韧性。
解题切入:确认影响范围/起始时间,外部与本地请求对比:DNS解析、路由/TLS、端口连接、HTTP状态、响应时间各代表不同层。ping成功不能证明HTTP健康,超时也不能独自证明host宕机。
阅读这道题的独立深文 →Meta 大小写数量差:ASCII与有符号结果:统计大写和小写字母数量差,明确字符分类、符号方向与非字母处理。
解题切入:一次扫描,大写加1、小写减1,其他0,即difference=sum每字符贡献。无需存两个字符列表,计数整数足够。
阅读这道题的独立深文 →Meta 最高性价比:整数交叉乘与最早索引:求ratings/prices最大的商品,使用交叉乘避免浮点并列误判。
解题切入:初始化best0,依次比较ratings[i]×prices[best]与ratings[best]×prices[i]。分母正所以交叉乘不等号方向不变。
阅读这道题的独立深文 →Meta 最近已发公交:严格早于当前与当日边界:寻找当天严格早于current的最近发车,返回已过分钟数,排除刚好同刻班次。
解题切入:把时间转hour×60+minute,避免按字符串/小时单独比较。格式固定两位,范围0..23/0..59校验。
阅读这道题的独立深文 →Meta 三位数各位不同:有限区间扫描与组合对照:在给定三位数闭区间统计三位互不相同,采用足够快且清楚的扫描。
解题切入:扫描left..right,取百位n//100、十位n//10%10、个位n%10,检查三对不等。不能只检查相邻位,121首尾仍重复。
阅读这道题的独立深文 →Meta 只加高度成单调:单位成本贪心与方向比较:在明确只允许逐单位增加的合同下,求变升序或降序的最少增加量,区分严格与非严格。
解题切入:升序从左到右out[i]=max(original[i],out[i−1]+step),严格step1、非严格0。每步选满足前缀的最小高度。
阅读这道题的独立深文 →Meta 图书馆SQL:状态良好且未归还的副本:按物理书副本统计condition good且存在未归还借阅,避免历史借阅连接重复。
解题切入:从copy过滤condition good,用EXISTS检查同copyId是否有open loan。EXISTS只决定是否存在,不把多个历史loan行乘进count。
阅读这道题的独立深文 →Meta 图书馆Top3:终身价值与超过10份副本:筛副本数严格大于10的书,再按给定lifetime value取前三,说明指标缺失。
解题切入:先按copy.book_id COUNT得到copy_count并HAVING COUNT(*)>10,再join book取lifetime_value排名。先筛资格再LIMIT,不能先全书Top3后筛导致少行且漏次优。
阅读这道题的独立深文 →Meta 邀请关系SQL:会员与邀请人的预订差:自连接会员及直接邀请人,比较活跃预订副本数的最大绝对差,处理零预订。
解题切入:先按member聚合COUNT DISTINCT copy,过滤active。两侧预订原始行不能直接join,否则member m条×inviter n条产生笛卡尔放大。
阅读这道题的独立深文 →Meta 嵌套列表Depth Sum:层级约定与迭代遍历:累加整数乘所在深度,明确根列表深度、空列表和深层输入的栈空间。
解题切入:栈存当前list的iterator和depth,遇整数加value×depth,遇child list压新iterator并depth+1;当前层耗尽后pop。
阅读这道题的独立深文 →Meta Nested Iterator:惰性展开与重复HasNext:逐个返回嵌套整数,缓存下一项保证重复hasNext不消费数据,并说明摊销成本。
解题切入:constructor仅保存根iterator,不能立即flatten整个输入否则失去惰性与depth空间。_advance遇list进入子iterator、耗尽pop,遇int返回。
阅读这道题的独立深文 →Meta 计算器:加乘优先级与右结合幂:解析非负整数的加法、乘法和幂,合并只含加乘的简化版本并明确语法。
解题切入:递归下降expr=term(+term)*,term=power(*power)*,power=number(^power)?。加乘循环左结合,power递归右侧形成右结合。
阅读这道题的独立深文 →Meta 函数Exclusive Time:嵌套栈与End含端点:解析单线程函数开始结束日志,扣除子调用时间,处理包含结束时刻的离散计时。
解题切入:stack保存当前调用链,cursor为尚未归属的第一tick。start事件t先给当前栈顶加t−cursor,再push新id,cursor=t。
阅读这道题的独立深文 →Meta TopK词频:Read-heavy缓存与Write-heavy权衡:返回频次最高的K项,讨论高频读取与高频更新下的计算、缓存和有序索引。
解题切入:静态数组先计count,再对D不同值排序,取K。更新频次O(1)平均并使cached无效;首次top重新排序,之后未变更的读仅拷K项。
阅读这道题的独立深文 →Meta 自我介绍:背景、职责与岗位连接:用简洁真实的经历介绍解释当前职责、主要能力和应聘方向,后续按问题展开。
解题切入:第一层30–60秒讲当前角色/工作对象与主要责任,不背完整简历;第二层选一个与岗位相关项目说明解决的问题、本人动作和可验证结果。
阅读这道题的独立深文 →Meta Why DE:数据产品、可靠性与职责证据:回答为什么选择数据工程,用实际建模、管道和数据消费经验说明角色匹配。
解题切入:先说明喜欢解决哪种数据问题,例如指标口径、可靠交付、建模和可复用数据产品;具体到使用者和决策,而非只列SQL/Spark工具。
阅读这道题的独立深文 →Meta 用数据说服:分歧、指标证据与决策改变:用真实案例说明如何以数据澄清争议,区别证明自己对和帮助团队决策。
解题切入:先描述各方原假设与共同业务目标,争议可能是口径/优先级/风险而非谁聪明。解释本人负责取证还是决策,避免将合作包装成个人碾压。
阅读这道题的独立深文 →Meta 平均评分:聚合键、Sum/Count与合并:用累计和及计数计算平均评分,明确独立观察、重复投票和空组语义。
解题切入:每条更新totals[video]+=rating、counts[video]+=1,最后sum/count;分组键是题面明确对象,不能把全平台平均答作每视频平均。
阅读这道题的独立深文 →Meta Course Schedule:入度消除与环检测:用Kahn拓扑排序判断前置课程是否可完成,纠正图遍历复杂度和边方向。
解题切入:构adj[prerequisite]→course,indegree[course]加1。所有入度0课程共同入queue,每出队一个就删除其对后继的依赖。
阅读这道题的独立深文 →Meta 所有员工共同空闲:忙碌并集的有限空隙:合并所有人的忙碌时段并取内部空隙,说明工作时间域和无界端点。
解题切入:一个时刻所有人空闲,当且仅当没有任何人的busy覆盖,即全busy并集的补集。无需逐对员工交集,先flatten区间排序。
阅读这道题的独立深文 →Meta Subsets:包含/不包含扩展与输出下界:生成互异值数组的全部子集,用每个新元素扩展已有结果并包含空集。
解题切入:初始result=[[]],处理新value时,把处理前已有每个subset加上value复制进result,原subset代表不选value,新subset代表选。
阅读这道题的独立深文 →Meta 树的边界:左边、叶子与右边逆序去重:按逆时针输出树边界,明确单边树、叶子重复和根节点处理。
解题切入:root单独写一次;从root.left走优先left否则right,非叶加入左边界;从root.right优先right否则left,非叶收集后reverse。
阅读这道题的独立深文 →Meta 单词缩写校验:双指针、数字跳过与前导零:逐段匹配字母和跳过长度,校验整词覆盖、越界及前导零。
解题切入:i指向word下一待匹配字符,j指向abbr下一段。字母要求word[i]同字符,并共同前进;数字则连续解析整个数字段,再让i前进skip。
阅读这道题的独立深文 →Meta 海景房:从右扫描与从左单调栈:海在右侧时,分别用后缀最大值和单调栈返回可见建筑下标。
解题切入:从右到左保留已看右侧的maximum。只有h>maximum时当前可见,记录下标并更新maximum;最后逆转输出恢复原顺序。
阅读这道题的独立深文 →Meta 树的层序遍历:队列分层与固定层宽:用队列按深度组织二叉树节点,解释层边界、宽度空间和空树行为。
解题切入:将根放入queue。每轮开始把当前len(queue)作为本层固定处理次数;弹出节点加入本层,依次把左、右孩子放到队尾。
阅读这道题的独立深文 →Meta 动态数组Append:单次最坏与摊还复杂度:用几何扩容模型解释没有预分配的append为何仍能实现总线性时间。
解题切入:未触发扩容时写一个槽位O(1);容量满时分配新数组并复制当前所有引用,本次最坏O(N)。单次最坏与连续操作的平均成本是两个不同问题。
阅读这道题的独立深文 →Next Step
题目只是准备的一部分;按公司攻略核对轮次、岗位差异和常见失分点。