教材:《数据结构教程》(用Java描述)李春葆等清华大学出版社2020《数据结构教程学习与实验指导》李春葆等清华大学出版社2020参考书:《算法》(第4版)人民邮电出版社2012(普林R.Sedgewick等斯顿大学教材)
教材: 《数据结构教程》(用Java描述)李春葆等 清华大学出版社 2020 《数据结构教程学习与实验指导》李春葆等 清华大学出版社 2020 参考书: 《算法》(第4版) R.Sedgewick等 人民邮电出版社 2012(普林 斯顿大学教材)
谷歌二月电面Pass及流程第一轮国人姐。就一题。问给一堆单词,找所有词里符合某种条件的,哪个最多。如果没记错是类似说给一个n,那么在有nsize相同的prefix里,哪个之后能写出最多的单词。我真的可能记错了,但没错的话给个例子:词条是-abcd,abef,abfg,xya,xyb 那先把这些词处理一下,然后n=2 就是说在有2个相同开头字母的词里,谁最多可能性,答案是“ab"这一题一开始没有具体的内容除了一堆单词,全程嘴讲,把整个class写出来,model问题以及每一个method.中间讨论很多细节问题,哪些逻辑加在data pre-process 还是怎么的,所以一道题写完就米有了。我全程 很干净,有条理的写,也基本 bug free 除有个syntax 后来发现写错了(Queue 给写出了.pop()这种智障玩意),问问题时间都很匆忙,只记得之一,我问刚去谷歌的时候最喜欢啥,她秒答天天免费吃,顿了一下,情不自禁的开始甜美的笑了起来
谷歌二月电面Pass及流程 第一轮 国人姐。就一题。问给一堆单词,找所有词里符合某种条件的, 哪个最多。如果没记错是类似说 给一个n, 那么在有n size相同的prefix里, 哪个之后能写出最多的单词。 我真的可能记错了,但没错的话给个例子:词条是-abcd,abef,abfg, xya, xyb 那先把这些词处理一下,然后n=2 就是说在有2个相同开头字母的 词里,谁最多可能性,答案是 "ab". 这一题一开始没有具体的内容除了一堆单词,全程嘴讲,把整个class写 出来,model问题以及每一个method. 中间讨论很多细节问题,哪些逻辑加在 data pre-process 还是怎么的,所以一道题写完就米有了。我全程 很干净, 有条理的写,也基本 bug free 除有个 syntax 后来发现写错了(Queue 给 写出了.pop() 这种智障玩意),问问题时间都很匆忙,只记得之一,我问刚 去谷歌的时候最喜欢啥,她秒答天天免费吃,顿了一下,情不自禁的开始甜美 的笑了起来
第二轮 烙印。一开始穷紧张。结果哥们发音挺标准就不紧张了。他问了一道超级简单的题。二叉树的最长路径。但我说思路的期间,他一直嫌弃。所以没急着写code 跟他讨论了每种做,这道题虽简单,但有点时间没写过,所以一开始就说 用一个 global variable 记录,很简单的递归并更新。他就很嫌弃且视的说 global 肯定是不行的,blahblah一堆废话理由。讨论一下我说可以自已装一个data struct,pass referencevalue(java).他又说这也是肯定不行的,blah blah,并且带着不耐烦的口音。我说那就试着从下面往上返回的时候每个节点自己维护暂时的最大值吧,听他好像深呼一口气,然后我自己画个图整理好思路才写。很简单的题却花十五分钟聊天和写好 bug free
第二轮 烙印。一开始穷紧张。结果哥们发音挺标准就不紧张了。他 问了一道超级简单的题。二叉树的最长路径。但我说思路的期间,他一直 嫌弃。所以没急着写 code 跟他讨论了每种做,这道题虽简单,但有点时 间没写过,所以一开始就说 用一个 global variable 记录,很简单的 递归并更新。他就很嫌弃且鄙视的说 global 肯定是不行的, blah blah 一堆废话理由。 讨论一下我说可以自己装一个 data struct, pass reference value (java). 他又说这也是肯定不行的,blah blah,并且带着不耐 烦的口音。我说那就试着从下面往上返回的时候每个节点自己维护暂时的 最大值吧,听他好像深呼一口气,然后我自己画个图整理好思路才写。很 简单的题却花十五分钟聊天和写好 bug free
Followup只是换成n-arytree,自己model.一样简单但又开始鸡蛋里挑骨头,吵很久怎么 model 好,各种 structure 的取舍。主要子节点的信息,我用Set 但他一直想叫我用List。明白他意思有点晚,放弃自已观点会闲得很愚蠢。他强调 worst case 所以只好辩驳avg case,我说除非有信息或资料显示这hash有相当的collision可能性,不然用秒探索孩子存在的能力 换取一个名义上更好地 Big O 而且孩子之间也没有任何本质上的顺序关系并不是 n-ary tree 更好的表现形式,最后甚至说出了“你想我用 list吗,你想我就换”,他居然让步了。诸如此类,边写code变斗嘴也挺累人。最后他还来了一招“嗯你这答案里有问题,自已看看吧”浪费十分钟检查。我说看不出来你讲吧。具体记不清反正他误解/看错了,跟他解释一顿他明自了,还道个(突然觉得自已是否说话口气有点重)当时以为这交流有点悬。但根据最后一周之内收到pass的结果来看,没跟我计较
Follow up只是换成 n-ary tree,自己model. 一样简单但又开始鸡蛋 里挑骨头,吵很久怎么 model 好,各种 structure 的取舍。主要子节点的信 息,我用 Set 但他一直想叫我用 List。明白他意思有点晚,放弃自己观点会 闲得很愚蠢。他强调 worst case 所以只好辩驳avg case,我说除非有信息 或资料显示这 hash 有相当的 collision 可能性,不然用秒探索孩子存在的 能力 换取一个名义上更好地 Big O 而且孩子之间也没有任何本质上的顺序关 系 并不是 n-ary tree 更好的表现形式,最后甚至说出了 “你想我用 list 吗,你想我就换”,他居然让步了。 诸如此类,边写code变斗嘴也挺累人。最后他还来了一招“嗯你这答案里 有问题,自己看看吧” 浪费 十分钟检查。我说看不出来你讲吧。具体记不清 反正他误解/看错了,跟他解释一顿他明白了,还道个歉(突然觉得自己是否说 话口气有点重)当时以为这交流有点悬。 但根据最后一周之内收到 pass 的结果来看,没跟我计较
FacebookOnsite+addtion电面1. coding: flatten linked list: a listNode has a next pointer,and data: data could be either a normal data such as int val,or a pointer point to another linked list node2. coding: implement circular buffer with read & writefunctions3.coding:两个整数相除,不能用除法和取模:给了一个常用解法,就是每次double除数,然后用被除数减新的除数,除数大于被除数之后变回最开始的除数,。。。;followup问有没有更优的解法,小哥一直耐心提示,不过当时有点累了,没有完全答出来;
Facebook Onsite + addtion电面 1. coding:flatten linked list: a listNode has a next pointer, and data;data could be either a normal data such as int val, or a pointer point to another linked list node 2. coding:implement circular buffer with read & write functions 3. coding:两个整数相除, 不能用除法和取模: 给了一个常用解法,就 是每次double除数,然后用被除数减新的除数,除数大于被除数之后变回最 开始的除数,。;follow up问有没有更优的解法,小哥一直耐心提示, 不过当时有点累了,没有完全答出来;