发一个冷门的面经-小马智行
楼主在二面前拿到了阿里的意向,所以面小马的时候很放松,现在记录一下小马智行的面试问题,算法题非常多,且都有一定难度。
时间线:9.14一面。9.21二面。9.25三面
一面:
- 腾讯实习经历,做过什么事情
- 详细挑一些讲讲,讲架构的全链路
- 分布式锁优化
- shein大数据相关的一些架构
- flink,spark streaming对比,优势
- 大数据组件的数据一致性保障,怎么保证数据不丢失
- 操作系统用过哪些命令,grep的作用是什么
- 写一道题吧,1个3*3的矩阵,数字从1到9,一开始的排列是,[1,2,3],[4,5,6],[7,8,9],现在主办方会将这个魔方进行旋转,选中某一行或某一列,旋转的定义是,对于行,同时往右(左)移动一格,对于列,同时往上(下)移动一格。给你一个被旋转过的魔方矩阵,你有两种操作,可以选中行进行右旋,或选中列进行上旋,求最少几步复原(记忆化搜索)
二面:
- rpc写过是吧,grpc有了解吗
- grpc的mutable字段在c++里怎么使用
- 直接写题,第一道题目,不会。给出一个无环图,无环图n个点,再给出你想去旅游的点,共m个,问旅游完所有点的最小花销是多少,并给出这个最短的路程序列。这个真有点难,因为会往回走嘛,类似于树的直径的思考方式,但他可以任意选取起点,当时想的换根,面试官说不是,真的不会。n,m范围是1e5
- 第二道题目,依然很难。已知有一个圆,圆心在原点上,给出了半径。给出n个点的横纵坐标,问有多少个点对满足,这个点对里的两个点可以互相看见,假设他们的视线被圆阻挡将无法互相看见,题目保证点不会出现在圆内或圆上。这个也很难
三面:
- java,c++的优缺点对比,各方面对比
- 在使用java的过程中,有遇到哪些问题(奇怪的,我没见这么问过的)
- java哪些不足(这我也不知道)
- 大数据的再问问
- 做题:有一个长度为n的数组,对于数组中某一个位置i来讲,假设窗口为k,他就可以看见,[i,i+k-1]这k个位置,他看到的所有数其实构成了一个集合。假设他看不到k个位置(就是超出范围了,那么就不考虑他),是否存在一个数,对于数组里的每一个位置所看到的集合,他都存在于其中呢?给出最大的可能的数,如果没有则是-1。同时,k属于1到n,给出每一个k对应的答案,n范围是1e5,样例:1,3,2,5,3,1。。k=3的时候,答案是3,k=4的时候,答案就是5,k=5也是5,k=1,答案就是-1,所以答案最后是[-1,-1,3,5,5,5]
- 三位数中有多少个数是满足从低位到高位递增,我说dp,他说组合数学,我寻思组合数学一般都用dp做,他说直接让我推公式,不会
- 你访问网址的时候出问题了,排查原因。这个讲了很多,从各种方面分析,客户端,网关,服务器之类的,也讲了可能是DNS寻址出问题
- NAT的作用是什么,可能和这个有关系吗?NAT的分类