Amazon实习电面

原帖地址:一亩三分地

Adam面的,上来说了有5、6分钟,然后开始做题。
题目有点非主流,说amazon以前只要处理200种商品,然后现在要处理200million个。大家都用一个dao.getItemDetail(id)的function去得到商品信心,但是这个API非常慢。现在我有一个list,你有什么方法可以speed up吗? (你到底在说什么我怎么听不懂!@#¥%……) 于是我就说让我再看看题,开了一会没什么想法,我就说那就用hashtable吧,每次call一下就存进去。他补充说 最后我返回就返回一个hashtable。我就写了一下,然后他说你没次都要call 这个API,没提高啊,我有可能给你的id是前五个一样,后五个一样。。 我说哦 那就之前判断一下,在table里了,就不call了。 他说那如果我call这个main方程很多次,那怎么办。
比如第一次 input[1,2] output [[1,deatils1],[2,details2]];
第二次 input[1,3] output[[1,details1],[2,details],[3,deatils3]],但是我想你ouput[[1,details1],[3,deatils3]], 我这时才反应过来要用cacahe,此时已经过去25分钟了。 完了我就赶紧写了一写,解释一下了。adam很开心,说exactlly, that’s what I am looking for. Excellent. 总算得到点安慰。

然后adam说,这个limit很贵啊,你不能无限存啊,没钱啊我们。 我说哦,那就用LRU吧,他说对对对,你设计一个? (我!@#¥%……*)
然后就开始设计LRU, 用double-linked list + hashmap, 用过放尾部,最少用的放前面。 就是leetcode那题了,最后它也没要我写完,就聊了聊进入问题环节。

gg,祝大家好运。