快手一二三面+网易互娱二面 面经

今天收到了快手的意向书,互娱的意向也在面试后第二天收到了,自己秋招的流程也算全部结束了。在这里记录整理一下相关的面试过程。

快手 岗位:音视频SDK开发

  • 9.22 一面加二面:

  • 一面:
  1. 详细介绍项目
  2. 两道算法题:(1)对字符串中的所有数字进行反转   (2)输出N*N的矩阵,矩阵形式如下,并要求优化时间复杂度
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
写完两道代码题后,问了一些STL的相关问题,主要问了vector 和 map的问题,还好自己看了相关的STL源码,回答问题的时候就算是自己之前没想过的问题也可以现场猜一下哈😂,问题比较零碎 ,记不清了,如果有时间最好看一下源码,真的可以解决绝大部分问题
  • 二面:
  1. 快排复杂度推导证明
  2. 一道算法题:完全二叉树的叶子结点插入,插入后仍保持完全二叉树
二面就写了这一道代码题,但是要求进行复杂度优化,并说明优化后的时间复杂度是什么

  • 9.26 三面:

三面大概三十多分钟,面试官全程问我项目的问题,因为自己的项目中有一个就是视频编解码相关的,所以项目问的很细
没有等到HR面,今天收到了意向书,虽然面试过程有压力,但不得不说快手的面试过程是让我觉得技术氛围最舒适的。赞一个。

网易互娱 岗位:游戏研发工程师

  • 9.27 现场二面:

  1. 现场代码测试,好像不能说,属于比较考查基础的类型
  2. C++的Lamdba函数表达式,写一个使用了某个对象实例作为参数的函数
  3. epoll的内部实现相关问题
  4. 蓄水池抽样,并证明
  5. 大小不一样的图进行合并,尽量减少空隙,面试官老师说这是一种合图的算法,自己没接触过,全程各种瞎猜解决办法哈
  6. 项目询问,这个环节很尴尬哈,因为有一个项目已经一年多没接触了,项目中具体的计算公式各种忘记,大家还是要好好准备一下项目,不然场面真的太尴尬了
项目结束后接下来就是聊游戏了,各种游戏各种聊,不愧是做游戏研发的面试官,我说啥游戏他都很清楚的样子,聊的很开心哈,让自己了解了很多游戏是怎么开发出来的事情。

最后的最后

整个秋招过程自己也经历了蛮多的面试了,前段时间也有收到别的一些oc,到现在,身为一个渣渣硕,真的感觉其实对于非科班的面试,理论知识的考察范围其实还是比较固定的。
说一点自己的想法吧:
首先算法是最重要的,凡是自己代码题没撕出来的基本面完就直接挂了哈,其他的问题答的再好也没有太多作用,之前还有两个面试官最后都有建议我多刷刷算法题😂😂
其次,部分必考的理论知识重视深度。可能是因为自己是非科班的,所以其实总结下来会发现,有好几个知识点基本都是必问的,比如STL、IO复用等等,面试官老师会在这些方面展开问各种不同的问题,这些自己都有去看它的源码实现,因为每次面试具体的问题本身变化性是很大的,但是如果我们对它的根本原理搞清楚的话,就可以不至于面试时遇到自己没有思考过的问题时没有一点头绪了
最后希望各位牛友们都能收到自己满意的offer哈,疯狂给你们运气buf加成!!!




#面经##校招##C++工程师##快手##网易互娱#
全部评论
老哥最后去哪了呀
点赞 回复 分享
发布于 2019-10-21 17:20
快手三面还会问技术吗
点赞 回复 分享
发布于 2019-10-14 12:09

相关推荐

04-22 23:15
中南大学 Java
时间:4.21公司地点:北京时长:52min做了一些简化,提取了更有借鉴价值的部分1. 部门介绍2. 自我介绍3. 这两个项目你觉得哪个项目复杂度高一些,可以多聊一会4. 你这个项目主要是想解决什么样的问题呢5. 你刚才说这些方法的话,应该说也是社区内或者说比较常见的一些处理方式了,对吧?我都或多或少都能get到,但是我有一个问题,就是**你做这件事情之前,就是每一个技术的应用之前,你有没有去验证这个技术确实提升了准确率呢**6. 我们的这些处理方式是否真正的真的提升了它的准确率。就是我们只是堆砌技术,还是说我们确确实实是提升了这件事情?7. 你这一知识库当时怎么选的?你做的知识库是什么类型的知识库?8. 那你这知识库里面涉及了哪些方面的内容?比如说文学类的,还是什么科技类的?是什么航天类的等等?有没有就说具体一些?9. 那你这个博客内容写的多吗?10. 那如果14篇文章的话,而且你这14篇文章看起来所涉及的范围是比较发散的,那么在这种情况下,其实这个rag的检索本身就不容易出现,刚才说的那个检索有问题的情况,这可能本身就不是个问题。11. 在我们去真正去做一件事情这的处理的时候,其实我们还是应该先去有一个度量的标准,不然我们优化可能是负优化,我们都不知道对吧?就是说我现在要做 rag 检索。我要去先做一个度量的方式,然后去验证它的准确率,你应该怎么做?12. 你怎么判断问题回答是准确的13.那么我怎么看到线上的这些回答的准确率呢?14. 有必要搞多级缓存吗15. 好,那首先就多级缓存来说,你觉得,它有什么弊端,还有它有什么优势?这个讲一下。16. 我有一个问题,首先其实我们一般认为 redis 它的那个吞吐是非常高的,而且如果说我们比如说数量很大,Redis 它也是支持那个多节点对吧,比如说…… 不管是哪种方案吧,Redis 也可以支持多节点的这种部署,所以在这种情况下的话,我们认为 redis 从网络压力这一块是没有太大问题的。那么在你看来,有了 redis 的话,我们还要去引入本地缓存的主要目的是什么?因为刚才你说的只是为了减少网络开销。 但是现在我们实际的生产环境中 redis 的是网络开销 其实是没什么太大的问题的。你应该明白我的意思,就是 redis 网络开销不是它的核心问题,就是我为什么非要引入本地缓存17. 我看后面你还自己写过两个 SKILL 对不对?能具体展展开一个就是你可能平时,有没有平时用的比较多的,我想知道不是那种为了写而写的那种,就真正能解释你生活中问题的那种 SKILL18. 你最近面试多吗?19. 那八九场的话,就是你觉得你做的自己就是面试,就是相当于面试自己的这种 Skill 和你真正去面试中拿到的面试题,它相似度高吗?>我是我当时了解到,主要是主要是因为网络开销的问题,进一步提升响应速度20. 说实话 redis 并不存在很大量的网络开销问题  对不对?21. 我看后面你还自己写过两个 SKILL 对不对?能具体展展开一个就是你可能平时,有没有平时用的比较多的,我想知道不是那种为了写而写的那种,就真正能解释你生活中问题的那种 SKILL22. 你最近面试多吗?23. 那八九场的话,就是你觉得你做的自己就是面试,就是相当于面试自己的这种Skill和你真正去面试中拿到的面试题,它相似度高吗24. OK, 那你觉得你这个 SKILL 有没有帮你解决到一些实际面试中的问题,有没有确实命中的一些面试中的一些真正的面试题25. 对你来说,现在比如经验完经历完这场面试之后,你觉得你的 SKILL 应该如何提升呢?26. 你理解什么叫 CAS?27. 那它和悲观锁有什么不同?那首先第一个问题就是纯靠CAS就能解释就能实现这个乐观锁吗?28. 解释一下volatile的这个关键字的目的和作用29. 既然我们提到了CAS操作就一定能保证。并发更新的安全性了。那么我们为什么还要用 volatile 去修饰这个变量呢?这不多此一举吗?30. 好,那继续问 CAS 里面会有什么问题?就它会有什么其他的什么问题呢?31. 你了解 CAS 的 ABA 问题吗?32. 讲一下怎么解决就可以了33. 那现在回到这儿来说就是有乐观锁和悲观锁两种锁,对不对。那么,我什么时候要选择乐观锁?什么时候要选择悲观锁?你看,我们知道 JDK 里面 synchronized 的关键字是悲观锁,对吧?而 ReentrantLock 是个就是这种我们一般认为是 CAS+volatile 这种乐观锁的方式那么这两种方式的话,你觉得我们在应用中。什么情况下会采用乐观锁?什么时候要采用悲观锁?34. 为什么?35. 这个我知道好,那现在问一个问题 就是说,既然高并发情况下用悲观锁就很好,那我无脑用悲观锁不就完了吗?就是既然说。乐观锁有就是说并发高了,它就不行,自选浪费 CPU,对吧?那我无脑用悲观锁,不就 OK 了吗?不挺好的吗?36.那还有一个问题,就是我们刚才说的这些并发的处理的方式。都是基于一个理念叫共享内存,对吧,相当于都是无论是悲观锁还是乐观锁,我们都相当于是要在对象上加锁,然后限制一些线程的进入和退出,对不对。 那么有没有别的方式照样可以实现并发更新的?并发更新的这样的一个方式,就除了共享内存方式,还有没有别的。比如说或者说我这么说吧,就全世界上处理同一个数据的多线程更新的这个问题,只有乐观锁和悲观锁两种方式吗?是非阻塞不能处理吗?因为不管是哪个锁,其实都会进入到一个阻塞的状态,对吧?必须是通过阻塞的方式才能搞实现多线程对同一变量的更新吗?37. 手撕环节:[电话号码的字母组合](*******************************************************************)48. 反问环节
查看30道真题和解析
点赞 评论 收藏
分享
评论
5
61
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务