TripAdvisor 面经 Phone + On-Site

原帖地址:一亩三分地

TripAdvisor的面试全程下来都很简单,感觉只要能和面试官愉快地交流就没什么问题,然后让面试官感觉你很match。毕竟不像那些任性的土豪公司。。。然后感觉他们家比较喜欢FullStack的人,所以感觉挺match的
6月7日电面:
一个Manager
1. Merge Two Sorted Linked List
2. Remove Fibonacci Index Element in a Linked List

6月29日On-Site:
第一轮:地里面经有提到过的题,给出下列的interface:
class Location {
int getType(); //返回location的type,如hotel,shopping mall等等。。
}

class Filter {
boolean check(Location location); //check一个location是否满足该Filter
}

List getAllLocation(); //得到所有location
然后要你写一个函数,输入是location的type 和 一个filter,然后返回所有满足type和filter的location
思路一开始就是,先getAllLocation,然后从头到尾扫一遍。然后面试官说如果访问量很大了怎么办,直接上LRU Cache。然后问LRU Cache在多线程下要在哪些地方加锁,怎么优化性能。这里只要简单说一下思路就好了。期间还问了一些Java的OOPS的东西,这些都是基础知识了。。还有一点就是,因为用了LRU Cache,所以要用到hashmap,面试官在这里问了要override Object class的哪些函数,直接反应就是hashCode和equals这两个函数。

第二轮:
1. 给一个点坐标(x, y) 和 n,n是要求输出的螺旋线段数。输出的线段的端点按顺序的规律是:
(x, y) -> (x, y+1) -> (x+1, y+1) -> (x-1, y+1) -> (x-1, y-1) -> (x-1, y+2) -> (x+2, y+2)

把这些点按顺序链接起来,就知道是不断的往外扩散的螺旋线段了。。。

2. 给一个0和1的矩阵,find number of island of 1,这题面经里也有

第三轮:
问了一些数据结构的东西,很简单,只要对基本的数据结构有了解就好
然后问了一题实现LinkedList的Iterator。

第四轮
聊天,因为就是之前电面的manager,所以就拉拉家常了。。。住哪里啊,假期准备去哪里玩儿啊。。。。聊聊现在的project进展咋样啊

第五轮
聊天,是个VP,英国人,很逗逼,说话语速特别快,但是很清晰,很容易听懂。我的语速也跟着match上了。。。
整个聊天过程就感觉就考察你是不是一个思路清晰的人,因为lz之前一直做machine learning和robotics,所以面试官很不解为啥选择他们家,然后我说了自己的理由
他说可以很reasonable。聊了40分钟,感觉很愉快。

第六轮
HR,很简单,就问问现有offer的package咋样,然后说前面的人对你印象很好,特别是那个VP,说you’re up,所以当时感觉offer已经不远了。。

面试完第二天就受到邮件说要聊聊offer,第三天发正式offer
全程下来,感觉运气特别好:)
也祝大家一切顺利。

补充内容 (2015-7-4 00:06):
第二轮的第1题的follow up是把n,换成start和end,也就是输出第start条线段到第end条线段,假设start很大很大,比如1 billion。找到规律就好了