美团 暑期实习 二面(4.6oc)
因为我是大三,然后一段实习也没有,自我预期不是很高。一面完感觉自己要寄,结果面试官评价我基础挺扎实的,直接约我二面了。
二面面试官气场很强大,我也很紧张。先让我挑一个项目讲,然后我就讲了cmu 15-445,因为只有这个内容比较丰富。然后还是问项目的难点在哪里,我回答是线上OJ导致不太好调试,接着让我讲讲遇到了的最困难的bug是什么,改了多长时间。
然后就开始做题了。一个qps限流问题。这个感觉很熟悉,应该也是经典题目了,除此之外就不知道了。首先是一秒内限制100次调用,多余的返回false。面试官说完语言不限之后,我默默地把Java的下拉框打开,点击了Go。幸好前几天在写6.824,要不然我time标准库都不会用。我写完了面试官说有小问题,我看不出来,想了几个点,面试官说我越改越回去了,最后说是调用了两次time.Now()函数,这俩不一样。然后升级版就是实时一秒钟内限制100次调用,然后思路就是一个队列,每次调用方法弹出前面的过期数据,然后判断队列长度到没到100。面试官很嫌弃,说你这时间复杂度太烂了,然后改成只判断队列头是否过期,每次弹一个,然后面试官质疑我的队列切片耗时会很大,说我看着挺会底层的,怎么这个都注意不到(汗)。我说那改成链表。他说,链表在他那只是最低标准的答案,最后想到了用一个环形数组。一看时间已经53分钟了。面试官说你虽然成功做出来了,但还是挺坎坷的。然后反问,结束。