面试真题讲解
逐题讲清解题思路、关键实现与常见追问。
算法面试:如何求最小覆盖子串?
从二次枚举推导可变长滑动窗口,用需求频次、满足种类数和收缩不变量在线找到最短覆盖区间,并通过重复字符、无解输入和随机差分验证 TypeScript 实现。
产品经理面试:如何判断产品是否应该进入一个新国家市场?
从真实需求、产品适配、单位经济和运营合规四条证据链判断是否进入新国家市场,并用分阶段试点、预设门槛和退出条件控制国际化投入。
如何回答“讲一次你面对伦理两难的经历”?
用 STAR 讲清你如何识别相互冲突的责任、核实事实、守住权限和保密边界、选择伤害更小的方案,并诚实说明结果、代价与复盘。
网络面试:DNSSEC 轮换后出现 SERVFAIL,如何排查?
从客户端、递归解析器、父区委派到权威区逐层取证,用 CD/AD 位、DS、DNSKEY 与 RRSIG 证明 DNSSEC 信任链故障,并安全恢复和验证。
数据工程面试:如何诊断并解决 Spark 数据倾斜?
从 Spark UI、执行计划和 key 分布证明数据倾斜,再依据语义选择 AQE、广播、热点 key 加盐或两阶段聚合,并用正确性与性能指标验证修复。
后端面试:如何在不破坏客户端的前提下演进公共 API?
通过公共订单 API 的字段重构、分页和状态扩展案例,学习识别源码、线协议与语义兼容性,并设计版本发布、迁移、弃用、监控和回滚方案。
算法面试:如何用双指针解决接雨水?
从逐列蓄水公式推导前后缀数组与双指针方案,用边界不变量证明为什么能安全移动较小一侧,并以 O(n) 时间、O(1) 额外空间实现和验证。
前端面试:如何解释事件传播并实现事件委托?
从捕获、目标和冒泡阶段推导事件委托,使用 target、closest 与边界检查实现动态列表,并处理传播中断、非冒泡事件、Shadow DOM 和监听器清理。
系统设计面试:如何设计一致性哈希与虚拟节点?
从取模重映射推导哈希环,设计带虚拟节点、权重、副本和版本化迁移的一致性哈希方案,并明确它解决不了的热点与故障问题。
如何回答“讲一次你处理不满意客户的经历”?
用 STAR 讲清你如何稳定情绪、核实事实、守住权限边界、提供可执行选项、验证闭环并减少复发,不把责任简单推给客户,也不编造完美结局。
Linux 面试:信号与优雅退出是如何工作的?
设计一个有明确截止时间的 Linux 服务退出流程:安全处理 SIGTERM、停止接收新任务、排空请求、管理子进程,并在 SIGKILL 前退出。
SQL 面试:如何准确计算第 7 日用户留存率?
用 PostgreSQL 完成精确第 7 日 Cohort 留存查询,系统处理日历日时区、成熟 Cohort 筛选、用户级去重、零回访用户保留与生产验证。
产品经理面试:如何为一款新产品定价?
从业务目标、客户价值、成本底线、替代方案、计价单位、包装和真实付费证据推导首发价格假设,并说明如何验证与调整。
算法面试:如何合并 K 个有序链表?
从候选头节点不变量推导 O(N log k) 解法,用大小不超过 k 的最小堆完成实现与正确性证明,并比较扫描、顺序合并、排序和分治方案。
前端面试:为什么 z-index 很大,元素仍然被遮挡?
通过区分层叠上下文顺序、裁剪、包含块坐标和浏览器顶层,定位一个设置超大 z-index 仍被遮挡的下拉菜单,并选择影响最小且可长期维护的修复方案。
系统设计面试题:如何设计电商支付处理系统?
围绕支付意图、授权与扣款、幂等重试、异步回调、不可变资金账本、退款和对账,推导一个能处理未知结果与故障恢复的电商支付系统。
后端面试题:如何防止 URL 抓取服务遭受 SSRF 攻击?
以 URL 预览服务为例,系统讲清 SSRF 防护中的目标授权、DNS 与 IP 校验、连接绑定、逐跳重定向检查、网络隔离、资源上限和对抗性测试。
行为面试:请讲一次你向利益相关者说“不”的经历
用 STAR 说明你如何核实请求、讲清后果与决策权、提出可执行选项,并在不损害信任的前提下支持最终决定。
产品经理面试:为生鲜配送应用设计推荐计划
从增量留存用户出发,设计推荐双方的资格、激励与兑现时点,再用对照实验、单位经济和反作弊护栏判断计划是否值得扩大。
Linux 面试:为什么 df 和 du 显示的磁盘用量不同
排查 Linux 中 df 显示文件系统已满、du 却小很多的问题。掌握统一统计范围、定位已删除但仍打开的文件与被挂载遮住的数据、区分预留块和真实差额、安全释放空间并验证恢复的方法。
后端面试:如何设计安全的密码重置流程
设计一套邮件链接密码重置流程,防止账户枚举、令牌泄露与重放、邮件轰炸和并发提交。理解不透明令牌、事务消费、会话撤销与故障可恢复投递如何协同。
SQL 面试:查找每个用户最长的连续登录天数
用 PostgreSQL 解一道 gaps and islands 面试题:先确定业务日期粒度,再用 ROW_NUMBER 推导稳定分组键,保留并列最长记录,并覆盖时区、重复事件与夏令时边界。
前端面试:如何实现一个无障碍模态对话框?
先定义语义、焦点、键盘、关闭与层级契约,再选择原生或自定义实现,并用完整焦点生命周期验证一个真正无障碍的模态对话框。
系统设计面试:如何设计短链接服务?
从明确流量假设推导短链接服务的编码空间、存储、缓存、跳转、幂等、过期和滥用治理,设计持久且低延迟的读写链路。