注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
四轮,题不难但节奏很快
先说结论:优步的题真的不难,但是快。45 分钟一轮,面试官恨不得你 15 分钟解决主题目,剩下半小时全用来加需求。有点像在开需求评审会,不是在做题。
题目用谐音,凑合看。
第一轮 Coding
小哥一上来就说「我们直接开始吧」,寒暄不到三十秒。
而屋伞,会议室那道 —— 给一堆时间区间,问最少需要几个会议室。
按起点排序 + 最小堆维护结束时间,模板题,十分钟写完。
然后就开始加需求了:
- 「如果我不要数量,要你返回每个会议具体分到哪个房间呢?」—— 堆里存 (结束时间, 房间号),弹出来的房间号复用就行。
- 「如果会议可以被打断、允许换房间呢?」—— 这个我想了会儿,说那就变成扫描线了,起点 +1 终点 -1,只关心并发数。
- 「如果区间是流式进来的,不能先排序呢?」—— 这个我答得一般,只说了可以用平衡树/线段树维护,没展开。
最后一个 follow up 明显是往真实业务上引的。做完我才反应过来,这不就是排班调度嘛。
第二轮 Coding
女面试官,全程语速很快。
酒器伞,平面上给一堆点,返回离原点最近的 K 个。
我先问「K 相对 N 多大」,她说 K 远小于 N。那就是堆 —— 维护大小为 K 的大顶堆,O(N log K)。写完她问还有别的做法吗,我说 quick select 可以做到平均 O(N),她让我把 partition 那段也写了。
follow up 全是往「这是真实系低估了复杂度的项目、跟人意见不合怎么处理的。都是常规题,但他会一直往下钻「那你当时怎么说服他的」「有数据支撑吗」。
几点体会
题不难,但要快。 我四轮里没有一道超过 medium,但每轮主题目写完都只花了不到一半时间,剩下全在 follow up。所以刷题的时候别停在「AC 了」,多想想加约束会怎么样。
follow up 都往真实系统上引。 数据变大、数据在动、数据是流式的、要分布式 —— 基本就这几个方向。提前想一轮,临场会从容很多。
堆和二分是硬通货。 四轮里堆出现了两次,能把 quick select 的 partition 顺手写出来是加分项。
SD 轮要主动。 我这轮基本是自己在推进,面试官只在关键处插一句。等着被问会显得很被动。
写得比较散,想到哪写到哪。求大米,也祝大家顺利。 |