先分岗位
LinkedIn 的不同岗位和团队可能考不同内容。先核对 JD 与面试邀请,再选对应题型。
Question Study
本地面经库有 60 条来源 URL 去重后的记录,其中 60 条有正文;目前整理出 67 道代表练习题,其中 67 道已完成独立深文。题目清单仍在逐帖核对和补充。
Reading Guide
题目根据面经方向重新表述,其中可能包含站内攻略建议的训练题;它们不是公司的官方题库,也不保证下一场面试重复出现。
LinkedIn 的不同岗位和团队可能考不同内容。先核对 JD 与面试邀请,再选对应题型。
相同核心考点只保留一条,后续的附加约束放在原题里练,避免把同一道题当成多道题刷。
先口述输入、输出和边界,再写核心方案;最后解释复杂度、失败路径和面试官可能追加的约束。
Featured Deep Dive
先把这道题的核心思路讲完整,再根据自己的目标岗位挑下面的题继续练。
实现 tokenizer / word segmentation,用 DP 或 Viterbi 找最高分切分,并解释复杂度和 tie-break。
Deduplicated Question Map
同一题的追加条件合并在一条里。题目清单用于确定训练范围;具体流程和准备优先级见公司攻略。
实现 tokenizer / word segmentation,用 DP 或 Viterbi 找最高分切分,并解释复杂度和 tie-break。
阅读这道题的独立深文 →给定用户关系图,查询两个 candidate 的最短连接距离,支持双向 BFS、cache 和隐私过滤。
解题切入:无权访问的边不能参与搜索;双向 BFS 减少搜索空间,多次查询可缓存但权限变化时必须失效。
阅读这道题的独立深文 →设计从生产系统采集指标、支持不同时间粒度查询并输出给外部可视化的 Metrics 平台;哪些指标能从预聚合精确合并?
解题切入:指标平台先定义 counter、gauge 与分位数的聚合语义;采集后保留细粒度与多级 rollup,任意粒度查询需处理对齐边界和不可直接平均的指标,告警并非该设计轮固定要求。
阅读这道题的独立深文 →现有 keyword search 如何升级自然语言搜索?没有标注数据时怎样利用旧搜索系统启动训练与评估?
解题切入:自然语言搜索先将用户意图映射到现有关键词/过滤器召回,旧搜索日志可给弱监督候选,但偏差和无标注长尾需靠人工集与在线实验核对。
阅读这道题的独立深文 →设计 AI 个性化 InMail:怎样选择候选人、生成消息、控制发送与衡量回复和负反馈?
解题切入:个性化 InMail 先筛合适候选人与合规触达,再基于真实公开/授权资料生成可审查草稿;评估回复、负反馈和招聘进展,不能只优化发送量。
阅读这道题的独立深文 →设计招聘助手 Agent:tool registry/call、RAG 检索、排序、邮件草稿和 human-in-the-loop 如何串联?
解题切入:招聘助手 Agent 用受限工具注册与调用连接职位/候选检索,RAG 给可追溯证据,排序与邮件草稿经人工批准;记录工具权限、误召回与越权风险。
阅读这道题的独立深文 →设计可重试的 Job Scheduler,并支持高效查询未来 N 小时将运行的任务供实时 Dashboard 展示。
解题切入:调度任务以持久 next_run_at 索引检索未来 N 小时;worker lease、重试和幂等键守住执行语义,Dashboard 查询与执行队列分离。
阅读这道题的独立深文 →设计 Typeahead Suggestions:前缀候选如何检索、排序、更新,并控制热点前缀延迟?
解题切入:Typeahead 前缀召回和排序分开;热门前缀可预计算 Top K 与缓存,增量更新要有版本和回退,最终延迟取决于键入节奏与热点分布。
阅读这道题的独立深文 →实现 AlertMonitor:15 分钟告警计数、当前小时严重程度分布、每分钟下一个更高告警量下标。
解题切入:AlertMonitor 三问分别用时间窗计数、小时桶分组和单调栈求下一更大值;原帖整点示例互相矛盾,先固定半开区间和窗口基准。
阅读这道题的独立深文 →已能 add booking 时,给定最早起点和时长,求最早可安排会议的起点;讨论 O(N) 查询与并发。
解题切入:Meeting Scheduler 先定义半开区间与冲突,再对已排序 booking 从请求起点向右扫描最早空隙;插入若用数组仍是 O(N),线程安全要统一检查与插入的临界区。
阅读这道题的独立深文 →多轮偏好投票:若无人过半,每轮淘汰得票最少候选人并重新转移选票,何时能选出胜者?
解题切入:多轮偏好投票每轮只数仍有效候选的最高偏好,超过有效票一半即胜;原帖未给淘汰平票规则,训练代码采用字典序并明确它不是原题事实。
阅读这道题的独立深文 →统计 first = last = 子数组最大值的非空子数组个数,如何在线性时间完成?
解题切入:端点同最大值子数组可用严格递减栈合并等值计数;遇到更大值弹出较小元素,同值累加贡献,整体 O(N)。
阅读这道题的独立深文 →数轴上选一个已有位置使到所有点距离和最小;证明为什么中位数最优,并说明偶数和平局。
解题切入:距离和 f(x)=Σ|x-aᵢ| 的斜率在有序样本处由负转正,故任一中位区间最优;偶数点时选已有位置可取两中位数之一。
阅读这道题的独立深文 →二叉树父节点保存子树最小值时,求全树第二小的不同值;哪些子树可以剪枝?
解题切入:min-parent 树的根是全局最小;等于根的子树继续搜,大于根的节点本身已是该子树最小,可剪去后代,最坏仍是 O(N)。
阅读这道题的独立深文 →仅通过 MultiDimArray.getDims() 与 get(indices) 遍历任意维度数组并求和,如何处理零维和空维?
解题切入:任意维数组的维数向量给每维范围,按笛卡尔积生成 index tuple 再调用 get;零长度维输出 0,零维若为标量需确认接口。
阅读这道题的独立深文 →十亿级有序数组只有几百个不同值,如何跳过重复连续段并统计 distinct 数?
解题切入:有序数组同值成连续段;从段首二分找第一个更大值并跳转,O(K log N) 随 distinct 数 K 增长,随机访问代价需单独核。
阅读这道题的独立深文 →实现 pow(x,n) 的递归/迭代快速幂,处理负指数和 INT_MIN 取反溢出。
解题切入:快速幂按指数二进制位平方与乘,负指数先扩大到宽整数再取反;0 的负次方需报错,浮点溢出/下溢与 0⁰ 契约先问。
阅读这道题的独立深文 →有序数组中找离 x 最近的 k 个数且结果有序;说明窗口二分的平局方向和大数组扩展。
解题切入:有序 K 最近数可以二分长度 K 窗口左边界;比较窗口两端到 x 的距离,相等向左保留较小数,输出切片 O(K)。
阅读这道题的独立深文 →设计按排序分数展示的 Feed:读多写少时如何混合推拉、削峰、缓存和保证作者自己即时可见?
解题切入:Feed 读多写少可普通用户写扩散、大 V 读合并;收件箱只存 ID/基础分,读时轻重排,自己发帖走读写直达并记录异步扇出水位。
阅读这道题的独立深文 →给定 M 面骰子各面概率或非归一化权重,用前缀和与二分按比例采样;概率和不为 1 怎么办?
解题切入:加权骰子先检查非负且总权重>0,累积前缀并按阈值二分;概率和不为 1 时按总权重缩放,零权重面不应被抽到。
阅读这道题的独立深文 →升序数组逐项代入二次函数 ax²+bx+c,如何在线性时间返回升序结果?
解题切入:有序数组二次变换的极值在两端或顶点附近;a≥0 时两端较大值倒序填,a<0 时较小值正序填,a=0 也应兼容。
阅读这道题的独立深文 →从零实现稀疏矩阵乘法,避免 O(MN) 的稠密存储,并分析非零项遍历成本。
解题切入:稀疏矩阵按行存非零列;A 的 (i,k) 只遍历 B 第 k 行非零项并累加到 (i,j),抵消后删零,复杂度按非零乘积次数计。
阅读这道题的独立深文 →给服务 read_from/write_to 路径和 deleted_list,先找路径受影响服务,再沿服务依赖链传播并按顺序输出。
解题切入:路径删除影响先按规范化目录边界定位直接读取者,再以 write→read 依赖边传播;输出顺序需定义拓扑/层次与环处理,原帖缺完整路径匹配契约。
阅读这道题的独立深文 →设计单 Admin 编辑、多 Viewer 实时看代码的 CoderPad 类网站;新成员进入要得到快照并持续追更。
解题切入:单编辑者实时协作可用服务端线性序号维护 edits,Viewer 先取带版本快照再按序应用增量;断线补偿和权限切换比 OT/CRDT 更关键。
阅读这道题的独立深文 →预测用户是否点击展示的职位:监督标签、用户/职位特征、embedding、数据泄漏和线上评估如何定义?
解题切入:职位点击预测必须以实际曝光为训练总体,区分未曝光与曝光未点;按时间切分、延迟标签与 position bias 核对,embedding 不得引入未来交互。
阅读这道题的独立深文 →短视频推荐如何快速适应用户连续划走这种高频负反馈,同时避免把探索机会全部关闭?
解题切入:短视频划走是强但有噪声的负反馈;用户短期状态要快速更新并设衰减,保留探索/多样性和创作者公平,离线及在线指标同时看。
阅读这道题的独立深文 →从简历/职位文本挖掘 LinkedIn Skills:候选片段、规范化、歧义消解、标注与评估怎么做?
解题切入:Skills 提取先从文本找候选 span,再把别名规范化到技能本体并做语境消歧;公开/授权资料和人工样本界定训练边界。
阅读这道题的独立深文 →调试手写 Logistic Regression:sigmoid、交叉熵与梯度推导哪里容易出错,怎样做数值梯度检查?
解题切入:逻辑回归用稳定 logits BCE:梯度对 logit 为 sigmoid(z)-y,参数梯度为 Xᵀ(p-y)/N;数值差分核导数且避免 sigmoid 饱和。
阅读这道题的独立深文 →从用户资料推断职位类别及子属性(如 Developer→Frontend/Backend/Infra),如何建层级标签并更新?
解题切入:职位类别/子属性是层级多标签问题;先定义 taxonomy 与标注,父子约束、拒答和增量新类别应一起设计,不能把 one-vs-rest 说成唯一多分类方式。
阅读这道题的独立深文 →给长文本求出现频率最高的前 K 个词,先明确分词、大小写、平局和大文本流式处理。
解题切入:Top K words 先定 Unicode 分词、归一化和同频顺序;计数后排序简单可靠,超大流需考虑外部聚合或近似 top K 的误差。
阅读这道题的独立深文 →给数字串和词典,找哪些单词按电话键盘映射后等于该数字串;多次查询如何预建索引?
解题切入:电话键盘先把每词映射为数字码;单次查询扫词典,多次查询建数字码→词列表,保留原词顺序并处理 0/1。
阅读这道题的独立深文 →实现按 value.rank() 淘汰的 Cache,last-seen 作为平局规则,rank 变动时如何保持堆正确?
解题切入:Rankable Cache 用 map+最小堆延迟失效,堆项的全局唯一版本避免删除后重插误命中;rank 可变必须显式刷新或牺牲 O(log N) 精确淘汰。
阅读这道题的独立深文 →单机 File KV:最多 10 万文件、10 亿 key、MB 级 value 不能留内存,如何索引、append 和回收?
解题切入:单机 File KV 的大 value 留磁盘 append log,内存只放 key→offset 元数据;十亿 key 的索引也可能超内存,需分层索引、压缩与 compaction。
阅读这道题的独立深文 →设计分布式倒排索引,支持多个关键词 posting list 交集查询;如何分片并压低热门词读瓶颈?
解题切入:倒排索引按 term 找有序 docID posting list;交集先最短列表并用跳跃/二分,分片要区分 term 分片与 doc 分片带来的热点和 fanout。
阅读这道题的独立深文 →设计 Exception Monitoring:从服务收集异常、按窗口找 Top K,如何定指纹、去重、时间窗口和可查 schema?
解题切入:Exception Monitoring 先采集结构化事件与错误指纹,再按租户/服务/时间窗聚合 Top K;高基数栈轨迹、迟到和异常去重需与查询 schema 一起定义。
阅读这道题的独立深文 →设计 MaxStack 支持 push/pop/top/peekMax/popMax;如果 popMax 很少调用,结构能否简化?
解题切入:MaxStack 可用双链表保栈顺序、最大堆保值顺序,alive 位懒清理;popMax 同值时删最近压入者,稀少 popMax 可接受 O(N) 扫描换简洁。
阅读这道题的独立深文 →实现 LRU Cache 并讨论多线程 get/put:原子性、锁粒度、容量和 AI 生成代码的验证方式。
解题切入:多线程 LRU 的 get 会移动 recency,属于写操作;整个查找/移动/淘汰需同一锁保护,单操作原子不等于复合 get-then-put 原子。
阅读这道题的独立深文 →两个可能相交的无环链表用 O(1) 额外空间找第一个相交节点;比较节点身份而非值。
解题切入:无环链表两指针在走到尾部后切到另一表,最多各走两表总长度而同步到交点;比较 node identity,不比较 value。
阅读这道题的独立深文 →多线程嵌套函数 start/end 日志计算每个函数 inclusive 与 exclusive time,如何处理不同线程的栈?
解题切入:CPU 时间按线程独立维护函数栈;end-start 是每次调用 inclusive,减直接子调用累计时长得 exclusive,半开时间与同时间戳顺序需先约定。
阅读这道题的独立深文 →每格箭头可改方向一次,求左上到右下最少改几格;解释为何用 0-1 BFS。
解题切入:方向网格保留当前箭头的边 cost=0,改方向 cost=1;双端队列 0-1 BFS 求最少修改,普通 BFS 无法按代价分层。
阅读这道题的独立深文 →用两个栈实现队列 push/pop/peek/empty,说明摊还 O(1) 和空队列行为。
解题切入:双栈队列 incoming 收新元素,outgoing 为空时整批倒入;每元素最多进出各栈一次,摊还 O(1),单次 pop 最坏 O(N)。
阅读这道题的独立深文 →按 node key 合并两棵 N-ary Tree,并讨论节点冲突规则与并发修改时的版本/锁。
解题切入:N-ary merge 只在 key 相同的节点递归合并;key 冲突、重复兄弟 key、顺序与 in-place 约束原帖未全给,先定契约再谈 DFS 与并发。
阅读这道题的独立深文 →手写仅二元特征和标签的 Decision Tree:如何选 split、停止、处理空分支和过拟合?
解题切入:二元 Decision Tree 每节点枚举尚可分特征,按 Gini/entropy 减少不纯度;纯叶、无增益、空分支与深度限制需要明确,原帖没给精确训练 contract。
阅读这道题的独立深文 →设计 LinkedIn Post / Job / Friend Updates 推荐:召回、排序、时效与不同来源的目标如何统一?
解题切入:Post/Job/Friend Updates 推荐应先分内容源召回、统一候选特征与多目标排序;曝光/点击偏差、职位过期和好友新动态时效需拆开评估。
阅读这道题的独立深文 →广告定向太窄时,如何把不完全匹配用户纳入 audience expansion,同时守住硬约束与广告主 ROI?
解题切入:广告 audience expansion 只能放宽可放宽的软匹配;地域/授权/排除名单是硬条件,评估增量覆盖、转化成本和反事实偏差。
阅读这道题的独立深文 →Staff Design Retro / 项目深挖怎样证明本人决策、跨团队影响、取舍和可量化业务结果?
解题切入:Staff 项目 Retro 用目标/范围、本人技术决策、跨组冲突、权衡、失败和业务结果构成证据链;没有本人数据不虚构影响。
阅读这道题的独立深文 →只给固定独立偏置的 0/1 随机函数,如何先去偏再无偏得到 0–6?为什么要拒绝第八种三位结果?
解题切入:原帖给偏置 0/1 源;若独立且固定偏置,先用 01/10 成对 Von Neumann 去偏,再以 3 个公平 bit 产生 0–7,拒绝 7 得均匀 0–6。
阅读这道题的独立深文 →NestedInteger 的普通深度加权和与反向深度加权和如何遍历?空嵌套层不能改变最大整数深度。
解题切入:Nested Weight Sum 普通版按整数深度乘值;反向版以最深整数层作权重 1,空嵌套列表不应虚增该深度,先核对是哪一版。
阅读这道题的独立深文 →给 knows(a,b) 查询,如何用 O(N) 次调用找 Celebrity 并验证不存在情形?
解题切入:Celebrity 先线性排除候选:若 c 认识 i 则 c 出局,否则 i 出局;最后再逐人检查候选不认识任何人且人人认识候选。
阅读这道题的独立深文 →两个升序正数数组的乘积网格中取最小 K 对;如何用行堆处理重复值和平局?
解题切入:正数升序数组乘积矩阵每行有序;先把每行首项入堆,每次弹最小并推进该行列,取 K 项,负数会破坏单调前提。
阅读这道题的独立深文 →实现支持重复值的 add/remove/removeRandom:数组与 value→indices 集合如何做到平均 O(1)?
解题切入:随机化多重集用数组存每次出现、map 值到索引集合;删除时用末尾交换补洞并同步两侧索引,随机下标使每个 occurrence 等概率。
阅读这道题的独立深文 →Linear Regression 与 Logistic Regression 何处共享线性预测器,损失、链接函数和概率解释又为何不同?
解题切入:Linear/Logistic 都可用 z=wᵀx+b,但前者直接预测连续值常配平方损失,后者经 sigmoid 给 Bernoulli 概率并配交叉熵;不能说目标完全一样。
阅读这道题的独立深文 →Random Forest 的树数、深度、特征采样与过拟合怎样取舍?与 Boosting 的训练和偏差方差有何差别?
解题切入:Random Forest 通过 bootstrap 和随机特征让树去相关,常减方差;Boosting 顺序拟合残差/梯度,重视弱学习器与 shrinkage,过拟合控制看深度与样本。
阅读这道题的独立深文 →高斯分布均值与方差的 MLE 如何推导?高斯混合模型为何引入 EM 的责任度迭代?
解题切入:单高斯 MLE 得 μ=样本均值、σ²=平均平方偏差(分母 N);混合高斯的隐变量责任度需 E/M 交替,初始化与退化方差必须处理。
阅读这道题的独立深文 →推荐系统高延迟时如何同时从检索、特征、模型、缓存和尾延迟定位并权衡质量?
解题切入:推荐延迟先量分层 p50/p95/p99,再缩召回候选、批取特征、压模型/级联、设缓存和超时回退;每步都以离线/线上质量对照。
阅读这道题的独立深文 →什么是 Virtual Memory / Page Table / TLB,缺页、地址转换与权限检查分别在哪里发生?
解题切入:虚拟地址经页表映射到物理页,TLB 缓存翻译;TLB miss 不等于 page fault,缺页可能需要操作系统装页并更新页表。
阅读这道题的独立深文 →数组和链表在随机访问、插入删除、缓存局部性和内存开销上的真实取舍是什么?
解题切入:数组连续内存便于 O(1) 索引和缓存预取,但中间插入搬移 O(N);链表已知节点插删 O(1),查找仍 O(N) 且指针占内存。
阅读这道题的独立深文 →Process 与 Thread 的地址空间、隔离、切换和共享数据同步有何差别?
解题切入:进程隔离地址空间,线程共享进程地址空间而有独立栈/寄存器;共享使通信便捷也带 race,需要锁/原子操作。
阅读这道题的独立深文 →Write-through 与 Write-back Cache 何时落到后端,怎样处理崩溃、脏数据和失效?
解题切入:Write-through 同步写后端再确认,持久性路径清楚但写放大;Write-back 先更新缓存并标脏,必须有可靠刷盘/故障恢复。
阅读这道题的独立深文 →Java 的 final、finally、finalize 分别是什么,变量/方法/类的 final 限制到哪里?
解题切入:Java final 限制重新赋值/覆盖/继承,finally 是 try 后清理块;final 引用仍可指向可变对象,finalize 已不应作为资源释放机制。
阅读这道题的独立深文 →Heap Memory 与 Stack Memory 有何区别,分配、生命周期、共享与逃逸分析怎样影响性能?
解题切入:线程栈存调用帧与局部变量语义,堆承载动态对象;逃逸分析可优化分配,不能把所有对象机械判为必在物理堆。
阅读这道题的独立深文 →Semaphore 与 Mutex 如何不同?什么时候需要许可计数,什么时候需要互斥和所有权?
解题切入:Mutex 是所有权互斥,一次只有一个持锁者;Semaphore 按许可计数限制并发资源,许可交还语义通常不等于锁所有权。
阅读这道题的独立深文 →Exception 是什么?与返回错误码、进程崩溃及可恢复/不可恢复错误如何区分?
解题切入:Exception 是把异常控制流与错误信息沿调用栈传播的机制;应区分可预期业务失败、可恢复异常和程序不变量破坏,并做好 finally/资源清理。
阅读这道题的独立深文 →Java Object 与 Inner Class 如何理解:静态嵌套类和非静态内部类的外部实例引用有什么差别?
解题切入:非静态 Inner Class 隐含外部实例引用,可访问其成员;static nested class 无隐含外部实例,避免不必要的生命周期耦合。
阅读这道题的独立深文 →Isomorphic Strings 如何用双向字符映射判断一一对应,并处理长度不等与 Unicode 语义?
解题切入:Isomorphic Strings 需双向映射:旧 source 必须映向同一 target,新 source 的 target 也不能已被占用;长度不等先拒绝,字符单位和规范化需明确。
阅读这道题的独立深文 →括号匹配从 `()` 扩展到 `[]` 与 `{}` 时,如何用栈验证嵌套顺序而不是只数括号?
解题切入:多类括号匹配把期待的闭括号压栈,遇闭括号核对栈顶,结束要求空栈;仅统计各类数量不能发现 `([)]` 交叉错误。
阅读这道题的独立深文 →Top K Search Words 如何定义 query 与时间窗,处理事件去重、迟到、热门词和全局精确排名?
解题切入:Top K Search Words 系统题先定义完整 query、分词还是独立用户数,再按事件时间聚合并去重;局部 Top K 合并不一定是全局 Top K,精确与近似方案必须分开。
阅读这道题的独立深文 →Next Step
题目只是准备的一部分;按公司攻略核对轮次、岗位差异和常见失分点。