Anduril SWE OA 面经|70 分钟两道题,区间流和边界测试怎么写

Anduril OA 面经配图

Anduril 的 SWE 筛选题时间很紧,写完主逻辑不够,还得把输入边界和增量数据处理干净。70 分钟两道 Coding,第一题先拿下可运行版本,第二题留出十分钟补测试,节奏会舒服很多。

第一题:乱序到达的区间流合并

题目描述

输入是一串持续到达的时间区间,每次加入新区间后都要返回已经合并好的结果。一个新区间会与多个旧区间相交,也会插在现有区间中间;输入顺序不保证按起点排列。

解题思路

把已合并区间按起点存进有序数组。新数据到来后,用二分定位插入点,再向左检查是否接壤,向右吞并所有重叠区间,最后一次性替换那段窗口。这个题的关键不是把两个区间合起来,而是连续重叠时不能漏掉第三段。若调用方会频繁查询,可以把数组换成按起点索引的平衡树,插入后只扫描相邻节点。

复杂度:单次插入定位为 O(log n),数组移动和合并最坏为 O(n)。

第二题:照片队列的双组约束

题目描述

给定两组候选人的身高与站位要求,把两组排成两行。每一列都要满足前后关系,同时要处理重复身高、人数不同和无法排出的输入。

解题思路

先分别排序,再逐列检查同一位置的大小关系。不要用“前面只要存在一个更矮的人”替代逐列判断;那会让排列语义变掉。实现时把比较方向做成一个小函数,先尝试 A 在前,再尝试 B 在前,两个方向都失败就直接返回空结果。这个拆法能把边界条件集中在一处,测试也更清楚。

做题过程

第一题先写三个例子:完全不重叠、一个新区间跨过两段旧区间、端点刚好相等。第二题至少覆盖重复值和两组人数不等。Anduril 的技术轮会继续追问需求细节,做题时先把“端点相等算不算重叠”“两行谁在前”问清楚,比后面返工更省时间。

备考建议

练习时把区间题从静态合并改成流式插入,逼自己写出每一步的状态变化。照片题则适合练接口约束:函数返回什么、非法输入如何处理、排序会不会改动原数组。关于面试轮次和技术主题,可以对照 Anduril SWE 候选人经验 做一遍口述演练。

FAQ

Anduril SWE OA 里最容易丢分的地方是什么?

不是算法名字,而是把边界写成了隐含假设。区间端点、重复元素、空输入和原地修改都要在动手前定下来。

写完主逻辑后还要做什么?

优先跑最小样例和反例,再补复杂度说明。面试官追问时,能指出数据规模和替代数据结构,会比只给出代码更完整。

参考来源

关于 CSINTERVIEWHELP

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