最近完成了 Uber 2026 New Grad 第一轮和第二轮 VO,目前已收到第三轮邀请。两轮都是 45 分钟 Coding 轮,整体体验不错, Uber 2026 NG VO Interview 面试官都比较友好,没有刻意为难。

第一轮 Coding + BQ(45 分钟)
BQ
面试官是一位随和的 ABC 小姐姐。 开场先做了自我介绍,然后花了 5-8 分钟围绕简历项目简单聊了聊,之后进入 Behavioral 问题,主要考察沟通能力和团队合作:
- 平时你是怎么帮助同事或团队里其他人的?举个例子。
- 聊一个你做过的最有挑战性的项目,难在哪里,你是怎么解决的?
- 如果来到 Uber,你最想做哪方面的事情?你觉得自己能带来什么价值?
BQ 回答完后直接进入 Coding。
Coding
题目:给你一堆会议的时间区间(start, end),找出同时进行的会议数量最多的时间段,随便返回一个即可。
解题思路: 经典扫描线(Sweep Line)算法:
- 把每个会议拆成两个事件:开始时间 +1,结束时间 -1
- 按时间排序后扫一遍,实时累加当前并发数
- 记录最大并发值出现的时间段
Follow-up 1:不是只返回一个时间段,而是要把所有达到最大并发数的时间段都找出来,最后把相邻重叠的时间段合并。
Follow-up 2:会议不是一次性给全的,而是流式动态到来(online),需要实时处理。
升级思路:使用 TreeMap 动态维护每个时间点的变化量,每来一个会议就更新,同时实时跟踪当前峰值。
第一轮顺利通过后,很快收到了第二轮面试邀请(约在第一轮结束后的 2-3 天)。第二轮依然是 45 分钟 Coding 轮,面试官是一位很 nice 的 Senior Engineer(印度裔)。
第二轮整体流程
开场还是先简单聊了聊简历和第一轮反馈,然后直接进入 Coding。
Coding
题目: 给你一堆会议的时间区间(每个会议有 start 和 end 时间),找出同时进行的会议数量最多的时间段(返回任意一个这样的时间段即可)。
解题思路:
- 把每个会议拆成两个事件:开始时间 +1,结束时间 -1。
- 将所有事件按时间排序(如果时间相同,结束事件排在开始事件前面,避免边界计数错误)。
- 扫一遍所有事件,实时累加当前并发数,记录最大并发值和对应的时间段。
代码写完后,面试官很满意,直接进入 Follow-up。
Follow-up 1: 不是只返回一个时间段,而是要把所有达到最大并发数的时间段都找出来。
升级思路: 扫描过程中,每次当前计数等于最大值时,就记录当前时间段。最后把相邻或重叠的时间段合并成连续区间返回。
Follow-up 2(难度明显上升): 会议不是一次性全部给到,而是流式动态到来(online query),需要实时处理新会议并维护当前峰值。
升级思路: 使用 TreeMap(有序映射)动态维护每个时间点的变化量(+1 或 -1)。每来一个新会议,就更新对应时间点的 delta,同时实时跟踪当前最大并发数和对应的时间段。
整个 Coding 过程我先把基础思路讲清楚,面试官确认理解后才开始写代码。Follow-up 阶段沟通也比较顺畅,他给了少量提示,最后成功通过。
第二轮总体感受
这一轮比第一轮稍难一些,主要难在 Follow-up 的在线处理部分。但面试官态度很好,会引导思路,没有刻意为难。提前准备过扫描线和 TreeMap 的用法,发挥得还算稳定。
目前已经收到第三轮邀请,继续加油准备中。
给准备 Uber 26NG 的同学的建议:
- 会议调度类题(扫描线 + Follow-up)是高频,一定要熟练掌握在线版本(TreeMap / Segment Tree)。
- Coding 时一定要先把思路讲清楚,面试官很看重沟通和思考过程。
- 多练习 progressive 类型的题(基础解法 → Follow-up 1 → Follow-up 2)。
如果你也在冲刺 Uber 2026 NG,欢迎留言或私信:
- 想看这道会议并发题的完整 Python / Java 代码(含两个 Follow-up)?
- 需要 Uber VO 高频 Coding 题列表?
- 想了解后续 BQ / System Design 轮的准备经验?
另外,如果你时间比较紧,想高效准备 Uber OA 和 VO,推荐 Programhelp 的专业辅助服务。他们提供 OA 代写、实时思路引导和全流程支持,很多同学都通过他们顺利拿到了 Uber Offer。