Netflix SWE OA 面经|CodeSignal 两题:区间收益和实验分流怎么写

Netflix SWE OA 在线测评编程题封面

Netflix SWE 的前置测评把代码速度和业务约束放在一起考。两道题都要写出可运行的实现:第一题先把区间收益算清,第二题处理实验分流记录。60 分钟里,第一题不要停在样例,第二题要把边界和重复事件写进测试。

第一题:连续片段的最大净收益

题目描述

给定每日内容曝光带来的收益 revenue[i] 与同日带宽成本 cost[i],选取一段连续日期,使净收益总和最大。区间必须非空;输出最大收益和对应的起止下标。追问要求在同样收益下返回更短的区间。

解题思路

先把每一天转成 gain[i] = revenue[i] - cost[i]。从左向右扫描,维护“以当前位置结尾的最佳区间”和它的起点。当前和小于零时直接从当前位置重新开始;当前和等于零时保留较晚的起点,后面更容易得到短区间。更新全局答案时按收益、长度、起点依次比较。这样不需要枚举所有区间,时间 O(n),空间 O(1)。

第二题:实验分流记录去重与配额检查

题目描述

输入一组按时间到达的事件,每条记录有 userIdexperimentIdvarianttimestamp。同一用户在同一实验中只保留第一条有效分流;每个 variant 有上限,超过上限的记录要标为 rejected。输出每个 variant 的有效用户数,以及被拒绝记录的下标。

解题思路

Set<(userId, experimentId)> 拦住重复分流,再用哈希表记录每个 variant 的已用名额。处理一条记录时先查去重集合;重复记录不占配额。首次出现的记录再查配额,未满则写入集合并递增计数,已满则把下标放进 rejected。若事件并非时间有序,先按 timestamp 和原始下标稳定排序,输出时再按原始下标排序。核心是把“重复”与“配额已满”分成两个分支,避免重复事件误占名额。

做题过程怎么分配

前 5 分钟先把输入、输出和 tie-break 规则写在注释里。第一题控制在 20 分钟内完成并补负数数组、单元素、收益相同的区间。第二题预留 25 分钟,至少覆盖重复事件、配额为零、乱序时间戳和多个实验同时出现。提交前再读一次变量名和输出顺序;这类题最容易在规则解释正确时丢在实现细节上。

Netflix OA 备考建议

把 Kadane、哈希去重、排序后的稳定处理和事件流聚合放在一组练。Netflix 的候选人记录里既有 HackerRank 的编码与统计组合,也有 CodeSignal 之后进入现场轮的流程;先把代码写完整,再用两三个自己构造的边界例子跑一遍更有效。想补充区间题,可以先看 Netflix OA 的候选人流程记录 中的测评描述。

FAQ

Netflix SWE OA 要不要准备统计题?

要。部分 SWE 流程把编码题和统计判断放在同一份测评里,复习时至少要能解释样本分流、比例和基础概率的含义。

第二题为什么不用双重循环查重复?

用户和实验的组合键可以直接放入 Set。事件量一上来,双重循环会拖慢整个实现,也会让配额逻辑更难读。

参考来源

关于 CSINTERVIEWHELP

进 VO 之前,可以找 CSINTERVIEWHELP 做实时面试助攻和备考辅导。CSINTERVIEWHELP 深耕北美 IT 行业多年,已帮助万余名学生进入全球 500 强企业。导师来自一线大厂资深工程师和面试官,对 Netflix 这类注重工程文化的公司的面试套路很熟悉。无论是 OA 题型解析、OA 辅导、VO 辅助、VO 模拟面试、VO 面试陪练还是系统设计辅助,都可以获得更有针对性的准备方案:CSINTERVIEWHELP · 服务详情