2016找工作回顾
在校招找工作期间没有找太多家,拿了网易游戏转正offer之后,本来已经快决定去了。后来offer给了白菜价(27W),有点失望,又考虑到游戏行业的特殊性,就又找了几家…
笔试大多数都没有什么问题,Google和Hulu笔试都比较难,然后没有过笔试很悲催。网易互联网很奇怪为什么没有过笔试。Airbnb也很奇怪,做了笔试,笔试就一道简单题目,给我发了面试邀请,后来又告诉我没有过笔试,猜测是因为题目发给了别人被查重。 Amazon很可惜,题目不难,但是环境不太熟悉,总出现编译不过的问题,也没有通过笔试。
下面都是主要面试的几家。
宜信大数据
- 一面:
- 在一个字典中,找出最相像的一个单词
- code,编辑距离
- 在一个页面上显示社交用户之间的关系(关注、被关注、相互关注),如何设计?
- 用户关注多个大V,怎么在页面上按时间顺序显示大V发布的内容?
- 二面:
- 先介绍了一下公司整体情况,有哪些Team,做些什么东西,说了好一会。人超nice。
- 二叉搜索树删除一个节点
- 求一个城市的剪影。(若干个矩形分布在X轴上,求轮廓线,回答了一个O(N)的算法,面试官说有一个分治的算法)
- 操作系统,堆和栈的区别
- 进程和线程
- 还问了一个求凸包的问题,但是之前遇到过,我就说了我知道,就没再继续问。(Graham算法)
- 三面:
- 两个相交物体怎么检测相交?求出相交的区域?(这个真不知道,面试官给我讲了一下思路,四叉树或者八叉树)
- code,二叉搜索树,给一个数值v,删除v的下一个节点。(先找再删,但是当时删除写得有些问题,找的那部分直接找v的下一个,写得也有些复杂,但是面试官说思路没问题,建议可以分开写,先找v再找v的下一个)
- 现在看这个题,找v的下一个那一块,不要返回节点指针,而是返回节点存的值,然后二叉树删一个值的所有节点,好写
- MySQL引擎哪两种?
- MylSAM
- InnoDB
- 数据库索引?
- B树
- B+树
offer √, 白菜offer,17 * 15,户口按排名分配
宜信大数据原来也是京城30W俱乐部,可能面试成绩不好,给的并不多。但是自从原来的老大走了,领走了很多Hulu人,感觉变得不是很有吸引力了,但是我觉得公司前景还是不错的…
百度
- 一面:
- code,一个堆,一个value,删除这个value(准备的不充分,堆的删除写错了,应该在把最后一个元素替换过来,我写成把左右孩子拿过来替换了…)
- code,大整数加法,尽可能考虑全了异常情况
- code,最短路算法,dijkstra
- C++多态
- 生产者消费者问题(回来看书发现写错了,面试官也不告诉我一下)
- 问我的优点和缺点…后来聊着聊着,面试官建议我后面学习学习机器学习…
- 二面:
- 介绍网易游戏实习项目,而且是比较详细的介绍,需求分析、应用场景、LogServer结构,应用的每一个模块
- 给了一段程序,给出输出。但是由于我对Linux不熟悉,面试官给我讲了一下fork是怎么回事,然后又说了一下printf有\n和没有\n的区别,再让我看看输出什么。(好在我最后分析对了,给出了正确输出)
- 两个链表,判读是否相交?是否有环?让我只遍历一遍来把相交和环的情况都判断出来,而且不能有额外的空间话费。也是没好好想清楚,所以一开始有些懵,后面面试官给了提示,简单写了一下。
- 三面:
- 聊天
- 不得不说,这次三面让我学到很多。不知道面试官聊的怎么样,我是聊的很开心,就像和一个有经验厉害的姐姐聊天一样。面试官给了我很多鼓励、建议。可能一直在不断训练自己解决问题的能力,但是对于分析问题、总结问题上,没有去过多注意。其实也真的很有必要不断训练自己分析问题、总结问题的能力,这样我觉得可能成长的更快吧。
- 还有就是,我第一次感觉到认可别人有多重要。谢谢那位面试官。
offer √,小sp,17*14.6,没户口
百度嘛,狼厂,锻炼几年很好跳槽
今日头条
- 一面:
- 聊项目
- C++,内存类型,或者说是程序内存布局
- 栈区
- 堆区
- 全局区(静态区)
- 文字常量区
- 程序代码区
- code,大小为n的无序数组,数字范围是[0, n-1],判断是否有重复元素。
- 在浏览器输入一个URL到得到响应的整个过程
- 上面问题刚说了一半,就开始问我DNS是咋回事?转发是怎么实现的?
- 讲一下KMP算法,主要是fail是咋回事,以及推导过程
- 二面:
- 聊项目,聊得比较深
- 因为接触过memcached,针对cache问了两个问题
- key-value,怎么hash出这个key
- 现在有5台memcached的缓存服务器,并且满了,怎么扩展
- code,min queue,类似 LeetCode 上的 min stack
- code,在机器上写
- 字符串,输出所有组合,比如”ab”,输出 “a”, “b”, “ab”
- 字符串,输出所有组合的全排列,比如”ab”,输出”a”,”b”,”ab”,”ba”
- 没想好这个,写错了…
offer:✘,说我经验少…
头条真的是一个不错的公司,但是据说很累,10-10-5.5
FreeWheel
- 一面:
- 英语自我介绍
- C++多态、纯虚函数
- Java、Python多态…这我哪会
- C++对象转换
- code,二叉树和两个数字,返回两个数字的路径
- 说了思路就没写code,面试官觉得我先找到最近公共祖先再打印路径的想法不是很好…
- 设计题,更新每一个group的视频浏览数
- 建图:从视频节点出发,dfs一遍找到能到的group,简历数据更新边,然后就可以直接更新
- 设计模式,当时没有太复习…
- 聊了一下简历
- 问了博客都写了什么东西
- 问我简历上写的 “在花 2 个小时手工解决问题与花 1 天编写程序自动化解决问题之间,我会选择后者” 是怎么回事
- 二面:
- 聊天
- 笔试算法题
- 面向对象,设计微波炉
- 业务理解能力考察
- 问优缺点、聊人生
- 三面:
- 聊了一下两次实习经历
- Linux熟悉吗
- Linux IO 多路复用…Linux真不是很熟悉…
- 看了简历感觉没什么问..然后我和他找话说…忘记胡说什么了…
- 我让面试官给我介绍一下高性能广告业务平台是怎么做的
- 然后借着这个又问我服务器高性能工具你用过吗…
offer: √,薪水不提了,是拿到的最多的,属于传说中京城30W俱乐部的(虽然现在的公司动不动就30W+)。公司环境好,公司做视频广告(平台,推荐)也很有前景,对自己发展也感觉不错。
微软ASG
- 一面:
- 闲聊,我说我是软粉,然后一起扯了一会Windows Phone
- 三个链表归并
- 写了一个循环写法,面试官说了一下递归写法,确实更简洁
- 二面:
- 闲聊,问了一下两次实习
- 判断链表是不是回文
- 因为我先把链表的前一半翻转再判断,面试官不是很满意,面试官的思路用了额外空间
- 写出了两个Bug,所以要注意写代码要注意Bug Free
- 1-N个数字打印所有和大于等于M的组合
- 三面:
- 闲聊了一会
- 打印1-N的全排列
- 在这题目上面讨论了时间复杂度、空间复杂度、以及栈空间溢出、函数调用栈空间的花费
- 四面:
- 竟然是外国面试官,准备的英语也没用上。而且遇到外国面试官超级紧张…
- 一道题目,分割字符串,也就是完成一个这样的函数: vector
split(string input, vector & separators) ,返回 split之后的结果,比如: input: "abc---defghijk;l" separators: {"-", "--", "ghi", ";"} 一个可能的答案是: {"abc", "", "def", "jk", "l"} - 先简单写一个暴力,要求Zero Bug(虽然写出了一个Bug)
- 分析复杂度,N = input.length(), M = separators.size(),O(NM)
- 如果 N <= 10^12, M <= 10^12, 但是separators的每一个string的长度 k <= 5,怎么优化?
- 为什么这么笨没想到…
offer:至今也没收到拒信…难道???(✘)
NVIDIA
NVIDIA在中国一般很少校招,今年(2016)赶上了一次,并且师兄帮忙内推,运气好,参加了面试(1轮电话面试+4轮技术面)
- 电话面试:
- 主要是聊项目,聊了简历上OpenGL的项目,比较基础。后悔没有把项目代码过一遍,因为现场二面的时候,项目问得好深…
- 一面:
- code,设计一个shared_ptr
- 忘记考虑隐式转换(explict)和自我复制
- 写完代码后又问了下多线程情况怎么处理…
- code,算法题,两个数组,A={a1, a2, … an} && 0<=ai<=9,B={b1, b2, … bm} && 0<=bi<=9,从两个数组一共选出k个数{c1, c2, … ck},保证选出的c1c2…ck组成的数字最大,并且保持在原数组的先后顺序,比如A={3, 6}, B={8, 4, 9}, k=3, 结果为896
- 面试官给了一个提示,有了想法后,因为二面面试官比较急,就没写代码…
- code,设计一个shared_ptr
- 二面:
- 二面是视频和美国那边视频面试
- 感觉二面就是社招的标准,项目问得特别深,然后项目的代码还没有去review一遍,一些细节也不记得了,还一直让我用英语说,血崩..
- 又问了一些pipeline基础,也涉及到了pipeline算法中的一些细节,比如裁剪是怎么做到的…
- 还有就是,中文还可以说出来,总让我用英语说…
- 最后问我会web开发吗… 我觉得可能是觉得我graphics不行,看看招过来能不能写网页…
- 要问我JS的问题,我说别问了,问了估计也不会… 二面面试官直接说,”那我觉得今天面试可以结束了”(原话)
- 三面:
- 以为都不会有三面了,好在二面面试官忙,没有反馈…
- 三面就比较顺了,问得都是graphics并且很基础
- 还让我写了一下最长公共子序列的状态转移方程
- 四面:
- HR后面和我说的,是临时找来的一个面试官,而且主要是做hardware的
- 主要介绍我的项目,然后聊了一些C++的东西
- 说到了 string copy-on-write,借此扯到了lazy思想,又扯到了缓存更新策略write-back…
可能之后也不会在graphics领域继续学习成长工作了,最后这个面试也是我对自己喜欢了3年的学科的交代了…
offer:✘
goudan-er SHARE · 杂
Others