Hulu Onsite 应届

第一面

input 是一个array of ad class, 比如 [“a”: 1, “b”: 2, ]。每一个element有两个fields,一个string就是ad的名字, 另一个是float表示广告商对这个ad的importance。 然后constructor里面,建一个hashmap,然后每次generate一个range是0~sum的random number来判断这个random number位于的位置就好了。然后被问到优化,我说用binary tree来存range就行。

第二面

题目是alien dictionary

第三面

第一题是99 cents的变体,要求输出多少种可能
第二题是有一辆巴士,每个同学要一定的钱,但要需要找四个同学拼票来凑成25刀才能上车,所以就是一个4sum的题目

第四面

manager的design,题目是design ATM,需要实现checkBalance, withdraw, deposit三个feature,所以我就分成各种情况来分析这个问题,然后分析到我们需要client和server两个部分,然后server side涉及到database table的design问题,然后问到了一个design transaction table啥的,我这里不太懂,manager把我解释懂了,因为可能是pending, complete这种,然后需要对每一个action也要存state, 我就设计一个user table一个account table,因为一个用户可能有多个account,一个account也可能有多个用户,所以需要follow面试官的hint把这些写上,然后问了些如果加锁的话怎么加, checkBalance是不用加的…