面试真题讲解
逐题讲清解题思路、关键实现与常见追问。
算法面试:如何实现 Dijkstra 最短路径算法?
用邻接表、最小堆惰性删除与前驱数组实现 Dijkstra,并证明贪心不变量,讲清提前退出、复杂度和负权边界。
产品经理面试:如何改善双边市场的流动性?
用地域、服务品类和时间组成流动性单元,定位双边市场的供需约束,再以局部供给、匹配、信任或定价干预验证能否稳定完成交易。
如何回答“讲一次你调解同事冲突的经历”?
用 STAR 讲清你如何判断调解边界、分别核实事实、围绕共同目标主持对话,并用明确协议与后续证据恢复协作。
Linux 面试:进程被 OOM Kill 时如何诊断?
从退出状态、cgroup 事件和内核日志确认 OOM 范围,再拆分内存构成,区分泄漏与限额不足并完成安全治理。
数据工程面试:看板数字错误时如何排查并修复?
从指标口径和可信对照开始,沿数据血缘定位第一个错误边界,再用隔离、幂等回填、对账和数据契约恢复可信数字并防止复发。
前端面试:如何排查并修复 React Hydration Mismatch?
从服务端 HTML、浏览器解析后的 DOM 与客户端首次渲染三份证据定位 React 水合不一致,并按数据、环境、结构和外部改写选择最小修复。
系统设计面试:如何设计分布式消息队列?
从交付契约、分区日志、副本确认、消费位点和大消息旁路出发,设计一个可回放、可扩展且能隔离多租户故障的分布式消息队列。
后端面试:如何用乐观并发控制防止丢失更新?
从两个用户同时编辑同一资源的冲突出发,设计 ETag、If-Match 与数据库版本条件更新,解释 428、412、幂等重试、冲突合并和高竞争边界。
算法面试:如何实现并查集并维护连通分量?
从动态连通查询推导并查集,用按大小合并和路径折半实现 union、connected 与分量计数,并解释正确性、均摊复杂度、测试方法和删除边界。
Linux 面试:Load Average 很高但 CPU 使用率很低,如何解释和排查?
从 Linux 的可运行任务与不可中断睡眠计量出发,用 R/D 状态、PSI、wchan 和子系统指标解释高负载低 CPU,并形成可验证的排查闭环。
后端面试:超时、重试与熔断器应该如何配合?
用端到端截止时间、失败语义矩阵和重试预算设计同步下游调用,再通过熔断器、有界探针与故障注入控制级联失败。
产品经理面试:如何改善 B2B SaaS 新用户引导与激活?
从工作区的首次真实价值出发,诊断 B2B SaaS 新用户引导的分群漏斗与摩擦类型,再用工作区级实验、长期留存护栏和发布矩阵决定上线、迭代或回退。
数据工程面试:如何设计避免训练—服务偏差的 ML 特征流水线?
以实时欺诈评分为例,用特征语义契约、双时间点连接、离线与在线存储、版本化发布及向量重放,设计可验证的 ML 特征流水线。
前端面试:如何排查 CORS 预检与凭证请求?
用四道关卡定位浏览器跨源请求:先核对 Origin,再检查 OPTIONS 预检、Cookie 凭证和响应共享规则,并给出最小权限配置与验证矩阵。
如何回答“讲一次你在职责之外主动承担责任的经历”?
用 STAR 讲清你如何识别无人负责的重要结果,在权限和机会成本可控的前提下接住责任、推动闭环,并把临时承担转成清晰的长期所有权。
算法面试:如何用单调队列求滑动窗口最大值?
从暴力扫描和堆方案推导单调双端队列,用支配关系、不变量与摊还分析证明 O(n) 时间,并给出实际只占 O(k) 空间的 TypeScript 环形队列实现。
系统设计面试:如何设计指标监控与告警系统?
从时间序列与基数预算出发,设计兼顾高吞吐采集、低延迟查询、可靠告警、租户隔离和可验证故障恢复的指标平台。
网络面试:HTTP/3 如何解决 HTTP/2 的队头阻塞?
用丢包时间线讲清 HTTP/2 的 TCP 跨流阻塞、HTTP/3 的 QUIC 多流隔离,以及单流重传、拥塞控制、流控与 QPACK 仍会带来的等待。
产品经理面试:竞争对手推出免费版本,应该如何应对?
用证据阶梯判断竞品免费版本是否真正改变用户选择,再按威胁强度选择观察、强化定位、有限试验或调整产品与定价,并设置可逆的改判条件。
如何回答“讲一次你向同事提供困难反馈的经历”?
用 STAR 组织真实经历,再用 SBI 把观察、影响和意图谈清楚;展示你如何处理防御反应、约定下一步,并以可观察的后续变化完成闭环。
算法面试:如何求二叉树的最近公共祖先?
从路径方案推导一次后序遍历,用子树返回值不变量证明最近公共祖先算法,并处理重复值、缺失节点、极深树和多次查询等常见追问。
后端面试:如何定位并修复 N+1 查询问题?
从随分页大小线性增长的 SQL 次数定位 N+1 查询,比较 JOIN 与 select-in 批量加载,并在不掩盖过度读取和一致性变化的前提下验证修复。
前端面试:如何定位并修复 React 中的陈旧闭包?
从渲染快照定位 React 回调为何读取旧值,再按语义选择依赖项、函数式更新、Effect Event、ref 与异步取消,避免无意义的重复订阅。
系统设计面试:如何设计实时协同编辑器?
从 CRDT 收敛、文档房间、持久更新日志和状态向量出发,设计支持本地即时编辑、离线重连、临时光标、权限撤销与可验证故障恢复的协同编辑系统。