亚麻04.18三轮VO

timeline:
2.8 收到内推确认邮件
2.21 OA1
3.2 OA2
4.4 选VO时间
4.18 VO

第一轮,Senior Engineer台湾小哥。
一道设计题,需要提供两个api,一个get(),一个put()
给了个例子:
get() -> 1
get() -> 2
get() -> 3
put(2)
get() -> 2
get() -> 4
put(3)
get() -> 3
get() -> 5
follow up 是,如果get比put多很多怎么处理
BQ: tight deadline, 从我给的例子又问了一些问题。

第二轮,印度大哥,声音断断续续,让他重复了好多遍问题。
第一题,给我画了一个tree, 先让我inorder顺序打印出来,然后说我现在加一个thread,楼主当时很开心,因为以前数据结构写过threaded tree, thread指向的是当前节点的inorder successor。但是这题里thread定义不一样,thread可以指向任何的inorder traversal之后的节点。
写一个validate() 方法,判断这棵树是不是validate的threaded tree
写了好久,差不多还有三分钟结束的时候写完了。
结果,还有第二题!
写一个数据结构,要求4个操作都在O(1)完成
put()
remove()
get()
getRandom()
没有BQ(也没时间了)

第三轮,印度小哥,感觉比我还紧张。
43, 41, 3, 2, -9, 3, 4, 5, 8, 43
给了个例子,要求返回第一个重复数字的index
follow up是,如果是sorted,而且只有一个数字有重复
比如1 2 3 4 5 5 6 7,返回重复数字的index
这题挺简单,用了binary search
写完还剩20分钟,问了5分钟BQ,提前10分钟结束了
BQ:
Tell me about a time when you worked against tight deadlines and didn’t have time to consider all options before making a decision.
Speed matters in business. Many decisions and actions are reversible and do not need extensive study. We value calculated risk taking.

2 Likes

求问楼主,第一题什么意思啊?没有东西上来先get还可以get出来东西?这是按什么顺序get put的啊

这题本质上是个ID generator,递增产生ID,并支持回收一些ID。

参考

就是说不可能put进去还没有get过的id?

请问第二轮的第二题大概是什么额。。

就是要写一个数据结构,可以在O(1)时间支持这4个操作

参考 380 Insert Delete GetRandom O(1)

楼主可以详细说一下第二题的follow up是做什么,然后怎么做吗?

第三题是 leetcode 287. Find the Duplicate Number 吗

第三轮的follow up有其他要求说一定是连续的integer之类的么