Uber 电面面经

原帖地址:一亩三分地

第一轮
面试官是一个华裔abc, 人很nice。
题目是anagram的变种,就是给一个dictionary, 再输入一个word, 让我写个function去找dictionary里面是否有这个word的anagram。

我先是想到了LC的anagram,就说把每个dictionary 里面的sort 一下然后存个hashmap。她说行,开始编程。完事后面试官让我试不同的testcase,问复杂度并且,我说O(nklgk). 她问能不能更efficent一点。我说用个对每个dictionary的word建立一个int array,然后统计每个char的出现次数 这样应该是O(nk)。她问有没有别的方法,我就说可以不用array, 用hashmap 统计(我实在想不到别的办法了)。面试官又问用矩阵和hashmap的区别和各自优缺点。等面试结束后,我想到应该compress成a1b2c3这种,然后用compress后的string作hashmap的key,不过为时已晚。总体上说面试官人很nice,也没为难我,经常给提示。
3个小时后收到HR来信,加面一轮

第二轮
第二轮是个国人小哥,非常照顾我。照例先自我介绍,过简历。然后开始问问题。先问了几个基础题目,我答得不太好(惭愧),有两个是问machine learning的一些基本概念。还有一道database和一个javascript的概念题,我都没答上来,javascript真是全还给老师了,今天过后要赶紧捡起来。
然后考了一道LC原题,search in rotated array。 由于前面基本概念不太好,写题的时候比较紧张,说话磕磕巴巴,好在以前做过。试test case的时候还出现了一个小bug,经提醒下改正。
本来觉得表现不太好,没想到一小时后接到 on site通知。看来是国人小哥帮忙给了通过,好人一生平安。

希望有米的同学能给点米。

  1. 优化方法应该是,建立hashmap时候,跟word字符长度不同的字词不需要排列,直接跨过。