Question Study

Netflix 面试题专题

本地面经库有 36 条来源 URL 去重后的记录,其中 36 条有正文;目前整理出 36 道代表练习题,其中 36 道已完成独立深文。题目清单仍在逐帖核对和补充。

Reading Guide

如何使用这份题目清单

题目根据面经方向重新表述,其中可能包含站内攻略建议的训练题;它们不是公司的官方题库,也不保证下一场面试重复出现。

先分岗位

Netflix 的不同岗位和团队可能考不同内容。先核对 JD 与面试邀请,再选对应题型。

合并同题变体

相同核心考点只保留一条,后续的附加约束放在原题里练,避免把同一道题当成多道题刷。

练习顺序

先口述输入、输出和边界,再写核心方案;最后解释复杂度、失败路径和面试官可能追加的约束。

Deduplicated Question Map

按考点去重的代表题

同一题的追加条件合并在一条里。题目清单用于确定训练范围;具体流程和准备优先级见公司攻略。

MLE / DE Coding · 01

按观看时长占比把每个 session 分为 Abandoned、Sampled、Completed

按观看时长占比把每个 session 分为 Abandoned、Sampled、Completed;对每个 account 选出现最多的类别,再汇总各类别的用户数。

查看上方解题路线 ↑

阅读这道题的独立深文 →
Problem Solving · 02

Netflix 首页多行 shelf 去重

Netflix 首页多行 shelf 去重:每行前 X 个显示位跨行去重,后续标题只需行内去重;讨论每行不同 X 与特殊行。

解题切入:逐行扫描标题;前 X 个输出位用跨行集合过滤,后续只用该行的已输出集合过滤。先问清 X 指输入索引还是输出位、跳过后是否补位。

阅读这道题的独立深文 →
SWE Coding · 03

不用内置转换函数解析带可选负号的十进制整数,检测非法字符、溢出及不超过一位的前导零

不用内置转换函数解析带可选负号的十进制整数,检测非法字符、溢出及不超过一位的前导零。

解题切入:按字符累积十进制数,加入下一位前检查上界;负数要允许最小有符号值,非法字符和前导零规则单独判断。

阅读这道题的独立深文 →
Concurrent Coding · 04

实现并发 latency tracker

实现并发 latency tracker:写入 timestamp 与毫秒延迟,查询给定时间窗口内的指定分位数。

解题切入:写入与查询需要一致的窗口快照;按时间索引过期样本,分位数的 nearest-rank 或插值口径先约定,再比较精确排序与近似 sketch 的成本。

阅读这道题的独立深文 →
Ads System Design · 05

设计广告 frequency cap

设计广告 frequency cap:定义用户、广告与窗口的计数语义,并讨论高并发下的扩容和一致性。

解题切入:先明确 cap 的维度与滑动/固定窗口,计数检查和写入要原子化;分片热点、迟到事件与存储故障时的误放误拒需说明。

阅读这道题的独立深文 →
SWE Coding / OOD · 06

沿 URL 文件及可选 next URL 读取电影评论,按负面关键词收集每部电影的负评,并讨论文件规模与并发抓取

沿 URL 文件及可选 next URL 读取电影评论,按负面关键词收集每部电影的负评,并讨论文件规模与并发抓取。

解题切入:把 start URL 与每个文件的可选 next URL 看成有向链;记录 visited 避免环和跨起点重复,按 movie id 聚合命中负面关键词的 review。

阅读这道题的独立深文 →
Data Platform Coding · 07

观看 ID 三阶段查重

观看 ID 三阶段查重:任意重复、索引距离不超过 K 的重复、数值差不超过 T 的近似 ID;第三阶段用桶。

解题切入:普通重复用 set,K 距离重复记录上次索引,数值差≤T 用宽 T+1 的桶并检查相邻桶;第三阶段原帖未给索引距离。

阅读这道题的独立深文 →
SWE Coding · 08

给定闭区间,求任一点被最多多少区间覆盖

给定闭区间,求任一点被最多多少区间覆盖;追问频繁查询某一点覆盖数的预处理方案。

解题切入:闭区间扫描线在同坐标先加开始事件再减结束事件;多次点查询可预排序起点和终点,用 `starts≤t` 减 `ends<t` 两次二分。

阅读这道题的独立深文 →
OOD / System Design · 09

实现内存文件管理的增删改查与版本,讨论实际生产中的快照、并发、持久化和历史读取语义

实现内存文件管理的增删改查与版本,讨论实际生产中的快照、并发、持久化和历史读取语义。

解题切入:先问 version 是全局快照还是每文件版本,删除后历史是否可读;内存实现把路径规范化、文件内容与版本记录分开,生产化再讨论 WAL 与恢复。

阅读这道题的独立深文 →
L6 System Design · 10

设计跟踪社交媒体上 Netflix 整体 sentiment 随时间变化的系统

设计跟踪社交媒体上 Netflix 整体 sentiment 随时间变化的系统:接入、聚合、离线模型训练与质量监控。

解题切入:先定义 sentiment 对象与事件时间;多平台接入要做去重、语言检测、采样偏差校正,再按时间聚合并用标注样本监控分类漂移。

阅读这道题的独立深文 →
System Design · 11

设计崩溃后仍可恢复文件内容的 resilient file system,并讨论 WAL、快照、提交语义与扩容瓶颈

设计崩溃后仍可恢复文件内容的 resilient file system,并讨论 WAL、快照、提交语义与扩容瓶颈。

解题切入:把写入确认点与可恢复性绑定:WAL 先持久化再 ACK,恢复时读快照并重放 WAL;原子 rename 与多文件操作需另定事务边界。

阅读这道题的独立深文 →
Infra Coding · 12

实现保证同步的 KV store,讨论细粒度锁、单 key 原子更新、验证及生产并发

实现保证同步的 KV store,讨论细粒度锁、单 key 原子更新、验证及生产并发。

解题切入:按 key 或 lock stripe 保护完整读改写,不要把线程安全 map 当作复合操作天然原子;测试多线程同 key 递增和异常回滚。

阅读这道题的独立深文 →
Data Platform Coding · 13

按每个用户最后 K 部电影的集合把相同用户分组

按每个用户最后 K 部电影的集合把相同用户分组;追问返回任意两名用户交集至少 M 部电影的所有 pair。

解题切入:先从每名用户的有序历史取最后 K 条再转集合;相同集合用 frozenset 分组,至少 M 重叠的 pair 可先做两两集合交集基线。

阅读这道题的独立深文 →
VO Coding · 14

实现电影轮播

实现电影轮播:每部电影有可更新分数,每个轮播周期内一部电影只返回一次,全部返回后开始新周期。

解题切入:维护电影分数与本周期已返回集合;分数更新作用于尚未返回项,取完全部后清空周期。生产优化用两个按分数有序的结构而非每次全量排序。

阅读这道题的独立深文 →
System Design · 15

设计 ML Job Scheduler

设计 ML Job Scheduler:区分训练、批量推断和 eval,讨论资源分配策略、资源监控、崩溃恢复及多租户。

解题切入:按 training/batch inference/eval 拆资源与 SLA;调度器把排队、配额、分配、运行状态和故障重试分别建模,防止一个租户垄断 GPU。

阅读这道题的独立深文 →
SWE Coding · 16

实现音乐 playlist,支持 add、remove、shuffle

实现音乐 playlist,支持 add、remove、shuffle;澄清重复歌曲与随机均匀性,并现场运行测试。

解题切入:playlist 维护轨道有序数组与 id→位置索引;shuffle 用 Fisher–Yates 且允许注入随机源做确定性验证,重复歌曲策略先问清。

阅读这道题的独立深文 →
VO Coding · 17

设计执行 command 和撤销最后一个 command 的类,处理可逆状态、失败命令与历史记录

设计执行 command 和撤销最后一个 command 的类,处理可逆状态、失败命令与历史记录。

解题切入:每个 command 成功执行后才把撤销信息入栈;undo 成功后再弹栈,失败则保留历史,无法逆转的外部副作用须另定补偿。

阅读这道题的独立深文 →
Ads Data Modeling · 18

为广告需求侧设计 entity schema

为广告需求侧设计 entity schema:advertiser、campaign、order、creative、投放与曝光事件之间的关系及历史版本。

解题切入:先定义 advertiser/campaign/order/creative 等实体的主键与版本,再把曝光/点击作为不可变事件;频控计数不能直接等同于计费账本。

阅读这道题的独立深文 →
Ads System Design · 19

设计广告 audience targeting,支持大规模受众数据上传、校验、去重、索引、隐私删除和投放查询

设计广告 audience targeting,支持大规模受众数据上传、校验、去重、索引、隐私删除和投放查询。

解题切入:上传文件先隔离到 staging,校验格式、权限与版本后构建分片 audience 索引,再原子发布;删除请求需传播到缓存与下游副本。

阅读这道题的独立深文 →
SWE Coding · 20

给定 show 列表,求最长连续相同 show 的长度

给定 show 列表,求最长连续相同 show 的长度;明确空列表与边界重置。

解题切入:扫描相邻 show 是否相等,维护当前连续段和全局最长;空列表返回 0,无需嵌套 while。

阅读这道题的独立深文 →
SWE Coding · 21

给定 show 列表,返回最长连续无重复子数组

给定 show 列表,返回最长连续无重复子数组;用滑动窗口与上次出现位置优化。

解题切入:维护 show 最近出现下标,重复且仍在窗口内就把 left 跳到旧下标+1;只在严格更长时更新最优,保留最早结果。

阅读这道题的独立深文 →
SWE Coding · 22

给定字符串列表,返回没有共同字符的字符串 pair

给定字符串列表,返回没有共同字符的字符串 pair;讨论限定小写字母时的 bitmask 优化。

解题切入:一般字符用 set 交集,两两比较;若仅含 a–z,把字符集压成 26 位掩码,`maskA & maskB == 0` 即无共同字符。

阅读这道题的独立深文 →
SWE Coding · 23

实现简化 jq

实现简化 jq:对 JSON 支持 `.`、`.name.email` 与 `.*.email.*` 等路径和 wildcard 选择。

解题切入:把路径切成 segment,从根 JSON 逐层推进候选值;普通键查 object,`*` 枚举 object value 或 array element;缺失路径返回空结果。

阅读这道题的独立深文 →
SWE Coding · 24

给定闭区间列表,合并所有有公共点的区间并返回覆盖原输入的不重叠区间

给定闭区间列表,合并所有有公共点的区间并返回覆盖原输入的不重叠区间。

解题切入:按 start 排序并维护当前合并段;闭区间只要 next.start≤current.end 就重叠,端点相同也必须合并。

阅读这道题的独立深文 →
OOD Coding · 25

实现 movie history

实现 movie history:添加电影、按浏览顺序取历史、清空历史,并明确重复观看与并发/持久化追问。

解题切入:每用户维护按浏览顺序的列表,add 追加、get 返回副本、clear 删除;同一电影重复观看是否保留与清空粒度先确认。

阅读这道题的独立深文 →
OOD Coding · 26

设计带依赖关系的 task 执行框架

设计带依赖关系的 task 执行框架:定义 task 接口,检测缺失依赖与环,按依赖顺序运行并讨论失败策略。

解题切入:把 task 和依赖建 DAG,先校验未知节点,再用 indegree/Kahn 调度 ready 队列;环无法执行,失败任务是否跳过后继要先约定。

阅读这道题的独立深文 →
Concurrent Coding · 27

实现有界 Blocking Queue 的 offer、poll、peek、size,并正确使用 wait/signal 处理多生产者消费者

实现有界 Blocking Queue 的 offer、poll、peek、size,并正确使用 wait/signal 处理多生产者消费者。

解题切入:有界队列用同一把 Condition 保护 deque;offer 等不满、poll 等非空,均用 while 重查谓词且超时按单一 deadline 计算。

阅读这道题的独立深文 →
Concurrent Coding · 28

实现 AtomicCounter 的 increment、decrement、get 和等待值归零

实现 AtomicCounter 的 increment、decrement、get 和等待值归零;正确处理条件等待及超时。

解题切入:计数器用 Condition 保证 increment/decrement/get 原子;降到零时 notify_all,wait_zero 在 while 中重查值并处理 timeout。

阅读这道题的独立深文 →
Concurrent Coding · 29

实现带 TTL、容量限制与 LRU 淘汰的并发 Map,讨论 lazy cleanup、过期边界及锁粒度

实现带 TTL、容量限制与 LRU 淘汰的并发 Map,讨论 lazy cleanup、过期边界及锁粒度。

解题切入:TTL Map 用同一锁保护 OrderedDict 与过期检查;get 命中刷新 LRU,put 先移除过期项再按容量淘汰,时钟用 monotonic。

阅读这道题的独立深文 →
System Design · 30

为 3 亿用户设计月订阅 Billing System,处理账期、付款重试、幂等、账本对账和扩容

为 3 亿用户设计月订阅 Billing System,处理账期、付款重试、幂等、账本对账和扩容。

解题切入:把月订阅拆成账期生成、金额快照、付款意图、支付回调和账本;按 account 与 billing period 的幂等键避免重试重复扣款,并做对账。

阅读这道题的独立深文 →
Behavioral · 31

最近收到的 constructive feedback 是什么?若没有,自己会给自己什么改进反馈?

最近收到的 constructive feedback 是什么?若没有,自己会给自己什么改进反馈?

解题切入:挑一条真实、具体的建设性反馈,按原话/场景、验证、改动、复查与结果说明;若无外部反馈,不能编造面试官或经理评价。

阅读这道题的独立深文 →
Behavioral · 32

讲一次你犯过的最大错误

讲一次你犯过的最大错误:当时如何发现、承担责任、补救并避免复发?

解题切入:错误题要讲清自己做错的决定、发现信号、影响范围、补救与事后机制变化;不要把别人的失误包装成自己的担当。

阅读这道题的独立深文 →
Behavioral · 33

讲一次你如何处理合作中的 conflict、challenge 或收到的反馈,说明实际决策与结果

讲一次你如何处理合作中的 conflict、challenge 或收到的反馈,说明实际决策与结果。

解题切入:冲突题先还原各方目标与分歧证据,再说如何试验/对齐、做决定、保护关系与复盘;不能只说自己‘沟通很好’。

阅读这道题的独立深文 →
Behavioral · 34

你认为自己的弱点是什么,最近采取了什么可验证的改进措施?

你认为自己的弱点是什么,最近采取了什么可验证的改进措施?

解题切入:弱点选真实且正在改进的能力,用具体行为和可观察结果佐证,别把‘过于追求完美’当答案。

阅读这道题的独立深文 →
Culture / HR · 35

为什么想加入 Netflix?结合 culture memo 选一个认同的点,并用自己的工作证据解释

为什么想加入 Netflix?结合 culture memo 选一个认同的点,并用自己的工作证据解释。

解题切入:先读面试时实际给到的 culture memo,选与经历对应的原则;用真实取舍说明为何匹配,避免复述官网或夸大内部政策。

阅读这道题的独立深文 →
Project Deep Dive · 36

介绍当前团队的 mission、自己负责的最大项目、个人贡献、取舍及与其他团队的协作

介绍当前团队的 mission、自己负责的最大项目、个人贡献、取舍及与其他团队的协作。

解题切入:项目深挖先讲团队目标与指标,再拆个人负责范围、关键决策、验证结果和跨团队合作;未知数据明确说无法确认。

阅读这道题的独立深文 →

Next Step

把题目放回面试流程

题目只是准备的一部分;按公司攻略核对轮次、岗位差异和常见失分点。

查看 Netflix 面试全攻略 →
✓已复制微信号!