Lyft 近期面经整理

  1. Full time | onsite | undergrad | Fail
    第一轮 Hiring manager聊experience, 顺便问一些很常规的BQ
    上机题 蠡口 autocomplete
    系统设计:设计一个event emiter什么的,这一轮有点迷,我确实也没有怎么听明白。
    CS fundamental。考了maxStack, minStack + 聊天

  2. Full time (level 5) | Phone tech interview | PhD
    Lyft无人车电面。Manager问了简历项目和背景知识,coding只有一题,经典面经题小行星。然后让问问题,说会给onsite。

  3. Full time (senior, 6yr exp) | Onsite | Master
    一共三轮
    第一轮
    设计一个网上的 donation 系统,好像主要是看如何不多次 收信用卡上的钱
    第二轮
    设计一个类似网络爬虫的东西,但是给你1000个机器,这些机器可以是任何设备,比如 手机,电脑 等等, 可能一会工作,一会不工作,如何把维基网页给全部下下来
    第三轮
    coding, 经典的 带transaction 数据库实现,地里面以前有人说过

  4. Full time | Phone tech interview | Master | Pass
    问题描述:
    假设我们把一个象棋中的马放在一个电话键盘上,马按照走日字的规则在键盘上跳动。键盘如下:
    1 2 3
    4 5 6
    7 8 9
    0

  • 写一个函数,输入为一个键盘上的start position, 找出马从这个位置跳一步可以到达的位置个数。例如 0 ->2, 5->0 (起始位置在5的时候,马哪里也不能跳),4->3

  • 如果可以跳n步,那么可以在最终可以跳到几个不同的键?

    我面试中的做法:

  • 直接hardcode,因为输入是有限的。

  • 使用迭代算法,并用Set去掉重复

  1. Full time | Onsite | PhD
  • Design wiki web crawler
  • Design music sharing system
  • Text justification
  • BH
  1. Intern | Phone tech interview | PhD | Pass
    本人数学phd第四年。lyft真的是无敌效率,上周四下午三点海投, 立刻收到选意向的邮件,然后四点就发了填tech店面的时间表,周五告诉我这周三下午店面。

    先是问了几个统计的题,基础加条件概率,有一个在T test情况下n越大,confidence interval越小没有答上来;然后是问,怎么样matching乘客和司机,回答假设有一个price information的话可以用Linear Assignment来解,具体就是用auction algorithm; 然后问如果price是linear的怎么求单个利润最大,就是接一个二次方程;接着问price information要怎么样model好,有没有private和general的feature, 这个随便说说;然后是如果有这些feature了,怎么做prediction比较好,回答是SVM或者NaiveBayes, 然后说说优缺点,怎么样处理cts和cat的label;最后如果是用dl来做的话用什么好,回答是lstm,因为用户打开app以后的行为可以当做time series

  2. Full time | Phone tech interview | Master
    Given an API
    vector fetch(int pageId): this function returns the items in given page, page size is fixed (say 5).
    Implement a Fetcher class which has a function:
    vector fetch(numOfItems): returns number of items.
    using above api.

    sample:
    fetch(0): return [0,1,2,3,4]
    fetch(1): return [5,6]
    Fetcher class:
    fetch(2): return [0,1]
    fetch(1): return [2]
    fetch(4): return [3,4,5,6]

  3. Full time | Onsite | PhD | Fail
    之前朋友内推的Lyft,店面很简单,number of island, 很快就过了。

    onsite 面的基本都是System design:
    直接上机写code, 实现一个有版本的key-value store

  • 设计一个donation 系统,要求实现信用卡支付的时候要exactly-once

  • 设计一个Lyft 的coupon 系统,对系统的并发要求不高,但要搞明白use case 和合理的数据存储方式。

  • 设计一个drivers的实时监控的dashboard, 基本思路也是GeoHashing, 要求设计API给前端数据render 一个heat map.

    设计题其实都不难,有些细节部分没有讲到面试官想听

  1. Intern | OA | PhD | Pass
    面的lyft的研究岗,这是第二轮,24h挑战,选的Optimization方向。给了10000个起始 终点坐标,要求拼车,2-matching,也可以单独乘车,为了让总距离最小

  2. Full time | Phone tech Interview + Onsite | Master
    电面: LC 239

    上门:

    第一轮 coding + design:
    Coding: 3*3的矩阵是True或False的值, 有个api Toggle(row, col)可以把本行本列的所有值 x 变成 !x. 给个input matrix 和一个output matrix, 问最少需要多少次调用Toggle API可以达成转换。 挺tricky的, 不过本质上就是个找符合条件的subset的问题
    Design: 设计个系统可以evaluate quality of AV maps

    第二轮 coding:

  • 一个数组, 里面的元素可能是int或者另一个数组, 设计iterator

  • 设计个composite iterator使得可以同时iterate两个数组, 数组里面的元素类型如上所诉

    系统设计: DL platform, 要支持无人车的模型training, prediction, deployment, 图片视频的存储/搜索/标记等等功能

    其他两轮都是聊天了

  1. Full time | Onsite | Master
    在Palo alto Level 5 AV department

    算法,偏向实际经验
    地理其他面经也有过,给了API calls,分别为注册属于signal ID的callable, 以及调用和移除 callable
    void register(int signalId, Callbable cb);
    void execute(int signalId);
    void remove(int signalID, Callable cd);
    基本概念就是用个map存放signal ID and Callable, 不难。后面有很多follow up,包括如果Cb A裡面有Cb B and Cb B又有Cb A的cycle情况,以及concurrency要怎麽处理。

    Manager 聊天

    System Design:
    Design Lyft driver and rider matching system

    算法
    Given 2 sorted Arrays, Implement an iterator that will output the elements in 2 arrays in order.

1 Like