Uber SDE Interview VO 真题分享(附完整思路,面试可直接用)- 一亩三分地 – VO辅助 – 代面试

最近一位同学刚面完 Uber VO,题目不难。


Problem

You are given a list of delivery intervals for Uber drivers. Each interval represents a delivery task with a start time and end time.

Return the minimum number of drivers required so that all deliveries can be completed without overlap.

Example 1:

Input: [[1,3],[2,4],[3,5]]
Output: 2

Example 2:

Input: [[1,2],[2,3]]
Output: 1

给你一堆订单时间段,每个订单有开始时间和结束时间。

一个司机同一时间只能送一个订单。

问:最少需要多少司机,才能把所有订单都完成?

[[1,3],[2,4],[3,5]] → 2个司机

面试官:
这题你怎么理解?

候选人:
就是看同一时间最多有多少订单在进行,对应就是最少司机数。

面试官:
对,那你怎么做?


第一反应要先讲思路:

候选人:
我会把开始时间和结束时间拆开分别排序。

然后用两个指针:

  • 一个指向 start
  • 一个指向 end

遍历 start:

  • 如果当前 start < 当前 end → 需要新司机
  • 否则 → 有司机空出来

1️⃣ 为什么排序?

因为你要按时间顺序处理“事件”

本质是 timeline 扫描


2️⃣ 为什么 start < end 要加司机?

说明有新的订单开始了,但之前的还没结束

产生 overlap


3️⃣ 如果 start == end 呢?

可以复用司机(重点细节)


Follow-up 1

如果每个订单有 priority,高优先级必须优先分配司机?

👉 解法:

用 min-heap 按结束时间 + priority 控制


Follow-up 2

如果司机可以提前接单(允许重叠一部分)?

👉 需要重新定义 overlap 条件


Follow-up 3

返回具体分配方案(哪个司机送哪些单)

👉 需要:

  • heap 存司机可用时间
  • 记录 assignment

如果你是准备 Uber / TikTok / DoorDash 这种 VO:

  • 实时提示思路
  • 帮你补充 edge case
  • 关键点提醒(不影响你表达)

整个过程是“你在面试,我们在旁边同步辅助”。

如果你近期准备 TikTok / Meta / Google / Uber 等公司面试,可以提前准备这些高频题目。

我们也有代面试,面试辅助,OA代写等服务助您早日上岸~

Leave a Reply

Your email address will not be published. Required fields are marked *