面试真题讲解
逐题讲清解题思路、关键实现与常见追问。
如何解释 Unicode 规范化,以及 NFC、NFD、NFKC、NFKD 的区别?
说明 Unicode 等价字符的多种编码形式、四种规范化形式、版本稳定性,以及搜索、标识符和安全校验中的边界。
行为面试:讲一次速度关键时你承担了经过计算的风险
用可逆性、护栏、证据和复盘组织风险故事,回答‘速度关键时承担过什么风险’并避免把鲁莽说成行动力。
数据工程面试:如何合并来自多个来源的人员记录?
用实体解析、候选分块、置信度阈值和可追溯主记录,把噪声人员数据安全地合并。
请讲一次你收到困难反馈并改变做法的经历
用具体事件展示如何听取尖锐反馈、验证事实、调整行为并让团队看到持续改进。
如何实现 LRU-K 缓存?
实现支持并发访问、容量限制和可解释淘汰顺序的 LRU-K 缓存,并比较它与 LRU、近似 LRU 和数据库缓冲池策略。
如何设计基于租约的 Leader 选举?
设计一个可恢复的 Leader 选举服务,处理心跳、任期、法定人数、时钟漂移、脑裂和故障演练。
产品经理面试:SaaS 应该提供免费版还是免费试用?
从价值交付速度、获客成本、转化质量、产品边界和计费风控选择免费版或免费试用。
编码面试:如何用后缀数组搜索字符串模式?
把固定文本的子串查询转化为后缀数组上的两次二分,并说明构建、复杂度与边界。
编程面试:实现单调整数优先队列 Radix Heap
利用已弹出键单调递增的不变量,用按最高不同位分桶实现整数优先队列,并解释重分布与摊销复杂度。
数据工程面试:如何选择 SCD 类型并处理迟到变更?
从报表时间语义推导 SCD Type 1、2、3 的选择,并设计可重放的迟到更新流程。
Coding 面试:如何用可回滚并查集处理离线动态连通性?
从只能合并的并查集出发,推导时间线段树加 rollback 的离线动态连通性方案,覆盖删除边、状态恢复、不变量与复杂度。
编码面试:如何用 Hopcroft–Karp 求二分图最大匹配?
把资格分配建模为二分图,说明增广路分层、复杂度与可运行实现。
编程面试:实现支持区间相交查询的区间树
用增强平衡树维护区间最大右端点,在线回答相交查询并解释旋转、删除与复杂度。
产品经理面试:如何澄清一个模糊的内部工具需求?
从症状追溯真实工作流,借助用户分层、证据梯度、MVP 与指标树,把模糊的内部工具请求转成可验证的产品决策。
产品经理面试:SaaS 应该引入按量计费吗?
从价值指标、账单可预测性、迁移护栏和实验结果判断 SaaS 是否适合按量计费。
系统设计面试:如何设计日历事件冲突处理系统?
从半开区间判定推导可扩展的日历冲突服务,覆盖重复事件、时区、隐私、并发写入和派生空闲时间索引。
数据工程面试:设计数据新鲜度 SLO
围绕事件时间、处理延迟、分区缺口和业务影响,设计可审计的数据新鲜度 SLO 与告警。
数据工程面试:如何设计 Point-in-Time Feature Join
用可复算的时间约束构建训练特征,避免未来信息泄漏,并解释离线与在线特征的一致性。
通用面试:HTTPS DNS 记录(SVCB)如何影响连接建立?
从优先级、AliasMode、参数兼容、降级与 DNSSEC 边界,系统回答 HTTPS DNS 记录。
产品经理面试:B2B SaaS 是否应该提供 IP Allowlist?
用客户风险、覆盖范围、运维成本和替代控制回答企业 IP Allowlist 的产品取舍。
系统设计面试:设计多区域流量调度与故障切换
从健康信号、延迟路由、容量保护和演练回退设计多区域流量调度,避免把 DNS 切换当成完整高可用方案。
行为面试:讲一次新证据让你改变判断
用可核验的证据、更新阈值和结果复盘,回答如何在不确定性中修正工作判断。
后端面试:如何用 S3 条件写入避免并发覆盖?
掌握 If-None-Match、If-Match 与 412 的边界,设计多写入者对象存储的安全更新流程。
行为面试:请讲一次你发现同事遗漏错误的经历
练习用 STAR 说明如何验证事实、保护关系、修复影响并改进流程,而不是把故事讲成指责同事。