Drawbridge front end engineer onsite 面经(已挂)

原帖地址:一亩三分地

看前一段时间地里关于 drawbridge 的面经都是 algorithm 职位的或者 Java 职位的偏多,来报一个 Front end engineer 的面经。

被猎头联系投了 front end engineer 的职位,上周五电面。Drawbridge 目前只有两个 front end engineer, 面我的是其中一个。电面比较简单,先问了 why interested in drawbridge, 然后上技术题,遍历 Linkedlist, 然后 reverse Linkedlist. 要求用 javascript 写。面完之后这周二onsite。

onsite 总共面了4轮。第一轮是前段组的另一个人,一个清华的小哥,给出一个 nested array, [1, 2, [1 , 2, 3], {“a”: “c”}, [4]],要求 flatten array,及把 nested 全部拿出来。用递归得方法很快写出来,然后清华小哥说如果有一个nested 很深的 array 用递归的话会出现 stackoverflow,问怎样处理。及让用非递归的方式再写一遍。在提示下知道需要自己维护栈,但是不知道在 js 中数组本身就是一个栈,思考怎样建栈和维护栈想了好长时间也没想明白,最后在小哥得讲解之下写了出来。

第二轮是电面时的前端组的大哥,美国人。第一个题是 flipmap, 及给一个一位数组表示一个图,然后给出每行得宽度,要求 in place flip the map, 其实是挺简单一个题,但是当时不知道怎么回事儿就是不知道怎么下笔,耽搁了一会儿还是面试官指着图提示了一下才写出来。然后 follow up 要求 rotate the map, 照着图看了看发现其实就是跟 reverse array 一模一样,说出来之后就没有再写。然后出了第三个题,给出一个大长方形(用左上角坐标和右下角坐标表示)区域,然后给出几个小的长方形区域,小长方形和大长方形可能相交也可能不相交,要求求出大长方形中和其他所有小长方形都不相交的面积最大的长方形区域。想了很久都没有思路,最后面试官带着一步一步给讲了讲两种做法,分析了时间复杂度,也没让再写代码,就结束了。

第三轮是一个韩国小哥,做后端的,问了一个 strstr 的问题,就用了两层循环写了出来,提了一句 kmp 算法,面试官貌似根本不知道是什么,就没有再继续说。这轮是最简单的。

最后一轮是 CTO,就是纯 behavioral questions.

面完之后就知道肯定挂了,昨天收到邮件通知挂了。

总结起来,虽然也已经刷了一些题,但还没有达到灵活运用的程度,遇到没有遇到的题还是不能有好的思路。另外平常刷题都用的 java, 面试过程中要求用 js,一些 js 的特性不了解。总之打铁还需自身硬,本领还没练到家,还是继续扎扎实实刷题,为下次面试做好准备!

分享出来希望对大家有一些帮助。