【亚麻社招】新鲜出炉Amazon两道OA新题

TimeLine:
3/7 逛[linkedin]的时候,猛然收到一封AMZN 一个SDE manager的InMail,说有hiring event,有没有兴趣来Alexa team。然后火速发了邮件给technical recruiter。
3/8 recruiter 发了OA连接,看了OA,意识到这像一个社招题。。。。我。。。我。。。是准备找entry level的。。。
OA是两道coding + survey。

第一题是词频题,给一个String,然后一个exclusiveWordList (List),找出String里去掉exclusive word 之后的最高频词汇的list
第二题是log file.
详情请看:
http://www.1point3acres.com/bbs/thread-348589-1-1.html

题不难,但我手贱不小心点了一下submit,还没有调试完,然后就被提交了,T_T。

另外,最近Alexa在狂招人,后面可能还有hiring event,想去的抓住机会啊。。。

查找最大词频的题,用个Map记录词频,然后排序输出肯定是过不去的

有必要這麽麻煩麽?

只需要再記錄一個List和一個最高頻度值就行,每得到一個詞,就判斷這個詞出現的頻度,如果頻度等於最高頻度,則將這個詞加到List裏面,如果大於最高頻度,則清空List,再把這個詞加到List中,並更新最高頻度

最後返回這個List就可以了

补充内容 (2018-3-15 10:53):
這樣得到最高頻度List的時間複雜度衹是N,空間複雜度也小很多

补充内容 (2018-3-15 10:56):
汗,这儿的时间复杂度应该是1,而不是N

我也是电面被问了几乎同样的问题

那你是怎么做的?

两个Map,一个Map记录词频,什么类型的Map均可。另一个Map这样设计,TreeMap<Integer, Set>,key是单词的出现次数,value是哪些单词出现了这么多次,每次新单词进来两个Map都更新。必须用TreeMap,因为TreeMap可以按照顺序输出key,可以做到logN复杂度,这样输出前k个,就是kLogN复杂度。

需要输出top N的时候,就把TreeMap的前k个输出出去。

了解了,多谢啦。

求问recruiter邮箱

已,同求recruiter邮箱,感谢lz,祝拿大offer~ 我邮箱是hackingme94@yahoo.com~

已发,字数字数字数

已私信,字数字数字数

同求recruiter邮箱,对Alexa hiring event感兴趣。 感谢楼主!

log file这题已经被收录了

https://leetcode.com/problems/reorder-log-files/