在 mountain view 面的
-
白人:说先来道热身吧–判断一个二叉树是不是BST。我用preorder traversal。问为什么可以这样做?说说别的方法,看能想出多少种。正题是merge两棵BST,结果还是BST. 不算难。追问如何尽可能保持平衡。我的做法是如果要插入节点比当前节点小,按理是往左子树递归。如果左子树节点比右子树的多,那就把这个节点做根,原来的根作为右子树。有点麻烦,因为要记住父节点。最后还是写出来了。面试官很满意。
-
三哥:盯着看简历看了好一会,结果什么也没问。直接上题:wildcard匹配,返回?和对应的部分。比如:
pattern: ab*c
string: a12babc
返回[“12”,“ab”]
follow up说给这个匹配函数加个参数bool greedy. 上例中如果greedy=true, 返回[“12ba”,""]
-
白人:地图上有水和小岛,算一下有多少个小岛。心中窃喜,原题嘛。正要开动,小哥说你先说说想法。我说DFS或者BFS。小哥说还有其它方法吗?答并查集可用。小哥说那就用并查集吧。磕磕碰碰写完,小哥还比较满意。接着说:要是发生了局部地震,有些小岛连成一个大岛该怎么办?
-
国人大哥:李寇散灵吧。原题又不失难度。感谢大哥有心关照了!
-
白人:设计google calendar。能设单次和repeat的event提醒。触发时所有client都能alarm。时间尽可能精确。考虑到狗家用户量,要能scale。
recruiter跟进很及时,不到一周电话通知过了!