终于上岸了.. 感谢牛客 后台面经回馈
刚刚收到了网易游戏的意向书,同时腾讯也走到了hr面(今天连续一面二面..),答主也很满意了,估计不会再投别的公司了。从三月以来,陆陆续续也面了很多公司,中间经历的起起伏伏,身心的折磨,难以言表,相信很多人也会觉得感同身受吧。
这段时间在牛客看了许多面经,帮助也很大,所以现在也希望记录回馈一下曾经遇到过的问题(中间有一些记不清了..抱歉),希望对大家有所帮助。
在这之前还是想说一些感受或者说经验。首先心态很重要,一时没有找到可能并不是因为你不够好,也可能是没有遇到合适的面试官/职位。就跟谈恋爱一样,可能并不是谁配不上谁,只是你们在哪些地方不合适而已,所以还是要放平心态,心平气和地对待结果。如果不合适分了就好,至少在这段经历里你也知道自己的不足之处,继续努力提高自己也不能说浪费时间。面试也是一个双向选择的过程,不需要因此而太过否定自己(当然如果发现不足的地方要加油辣)。答主在3月也是一个offer都没拿到,调整心态以后,现在结果还不错:)当然,道理谁也明白,但是做到也不容易,在这里答主建议大家可以的话先去拿一些中小厂的offer,回头一看压力或许就会轻松很多了。
其次面试也是需要运气和技巧的,面试遇到的主要问题其实就这么多,有经验的同学应该早早就复习得差不多了,这时去面试还是需要一些运气的,如果恰好遇到了做过的算法题或者场景题,通过的概率就会相对提高;如果遇到一些比较诡异的题,那么没接触过的人很难答得上来,甚至会影响心态。所以,如果遇到了不会的问题,结束了要抓紧时间查漏补缺;如果能准备的都准备好了,再加上一些运气,通过的机会就会大很多(当然如果没有东西能难倒你就更好辣)。一时运气不好也不用气馁,说不定下次就运气好了呢^ ^。
还有一个很重要的点就是,如果你的简历上有亮点,或者说在某个方面有深入研究,很可能会事半功倍。在面试时往往会先自我介绍,或者问你擅长哪些方面,这时候你可以想办法展示自己的亮点(也就是很多人所说的引导面试官),只要可以深入地去谈一些问题,(如果可以讨论起来就更稳辣)例如解释算法,实现细节,往往可以给面试官留下好印象的同时,降低遇到的不会的问题的风险。一场面试的时间是有限的,如果在之前用一半的时间去讨论你的亮点,那么面试官往往会在之后出一些比较简单,可以较快答出的题目,如果能很快地回答出来加上之前的印象分,通过面试的机会就大大增加。当然,也有面试官啥也不问直接怼的。。还是有运气成分。
最后,答主个人认为,大家要重视算法(不是说基础知识不重要)。如果算法题都能很好地答出来,那么即使其他问题没有答得很好,面试官(如果还会招人的话)都会想方设法找出你亮点,给你通过的机会(个人感觉)。前面答得再烂,一般面试官都会给你1道或几道算法题的机会,如果你能很好地解决这些算法题,他会重新问一些别的问题考察你(我觉得类似复活币..),多给你一些机会。答主基本上每次面试都会被评价项目太烂,但是基础挺好,基本上就是靠算法题和基础知识通过的。。(但如果有项目,谁又愿意做__?)
好了,唠叨了这么多,下面放一些面经:
头条 后台 1.2.3面
因为是第一家面试的公司,时间有点久了不是很记得,抱歉。
一面
1. 自我介绍
2. 科班出身应该会编译原理吧,然后问了词法分析blablabla
3. 计组会吧,然后问了cpu寄存器还有一些体系结构的问题
(前面答得很烂)
4. 算法:
1)rand5实现rand7
2)小于n的字典序排列的第k个数字
二面
1.由于面试官面了一天很累,所以就没有客套,直接算法:
1)两个人取石头 每次最少1个,最多a个,共有n个 有必胜策略吗
2)先手写4皇后矩阵,然后问我怎么构造16皇后?无穷皇后呢?
或者说,在一个无穷棋盘,给定一个坐标(i,j),如何确定它是不是皇后?
这里真的想夸一下这个面试官,非常耐心,在整个过程中很好地引导我去思考问题,是属于挂了我我也没有怨言的一次面试。
三面
1. 自我介绍
2. 编译时的过程,之后还问了一些很底层的细节,记不清了
3. 算法:
1)飞机上有100个座位,有100个人按顺序上飞机,他们选座位的规则如下:a)如果自己的位置没有被坐,那么坐自己序号对应的位置;b)如果被坐了就随便坐。已知第一个人喝醉了随便坐,其他人正常,求第100个人坐到第100个位置的概率;
2)也是一道概率题,忘了,抱歉
3)lru
网易游戏 平台开发 1面
由于网易游戏分部门招聘,有个部门来我们学校开宣讲会,并且提供额外一次参加面试的机会,所以就先面了平台开发
1. 自我介绍 问了下项目
2. main函数返回值的作用
3. 如何在mian函数之前执行函数
4. inline内联函数return怎么处理5. linux tail命令如何实现
6. ssh到服务器执行命令后断开链接会怎么样
7. linux如何后台执行程序,怎么实现的
...
算法:不用递归实现二叉树镜像
腾讯 ieg 后台 1面
先是自我介绍,项目难点,高性能计算
- 线程有什么共享资源和独占资源
- 线程栈溢出会影响别的线程吗?
- 进程间通信
- 管道如何解决并发问题
- 无锁怎么解决
- tcp和udp区别
- udp如何实现不乱序
- udp如何实现不丢包
- nginx源码看过吗
- 如何要实现一个服务器你要怎么实现
- select和epoll区别
- select和epoll哪个效率高
- 多线程监听同一个端口会引发XX问题(没听清)怎么解决
- 看过开源项目吗
- 玩啥游戏?dota2
后面的有些忘了
腾讯 pcg 后台 简历面 1.2.3面
简历面
- 自我介绍 你是哪里人
- C++特性:封装继承多态
- 多态如何实现
- 虚函数机制
- 重载与覆盖的区别
- 如何用C编译 (extern C)
- 成员函数在内存结构中哪个位置
- 如何实现单例模式
- static函数可以修改成员变量吗
- (忘了)
- vector实现
- map了解吗
- 红黑树是怎样的
- unordered_map实现 插入复杂度
- 链表
- 逆序打印链表
- redis的跳跃表了解吗
- 算法:一个数组,保存了0-9的元素,有两个数字只出现了一次,其他数字出现了若干次,找到这两个数字 时间O(n) 空间O(1)
- 五/七层
- tcp头部
- tcp握手 滑动窗口
- time_wait
- 应用层如何保证包有序?粘包了解吗
- get post
- 哲学家进餐问题
- 几种锁
- ipc rpc
- mysql 事务
- 引擎
- mysql具体语句(跪了)
- epoll
- 有没写过socket程序
- linux命令
- redis用过吗
- nginx的了解
- 逐个问项目
- 评价你自己
- 你舍友哪里人(???)
- 你投过其他公司吗
一面
算法1:实现atoi(要考虑错误怎么处理,溢出,非法字符串,空格,正负号等等)
算法2:识别"a=b&c=d&d=e"这种类型的字符串,保存在map里
二面
只记得算法题是实现链表了;还问了基础知识
三面
介绍了项目以后问了一些基本情况就挂了。。
阿里 C++ 1面
感觉并不想招人。。
- 自我介绍
- 长处短处
- linux怎么找到当前目录下所有文件中含有alibaba字符串(命令)
- tcp/udp
- http有状态吗?
- 什么情况下用http连接不用tcp
- 项目介绍 高性能环境
- RESTful是什么 框架
- 微服务知道吗
- 如果有很多个微服务,要怎么找到对应地址
- 容灾怎么做
- 你会JAVA吗?(不会)那问下C++
- 什么时候要重载拷贝构造函数?(聊了以后发现他的意思是重写overriding)
- (忘了)
- 暑假有空吗/愿意转java吗
- 引用的指针和指针的引用的场景
- stl的了解 vector list map
- map保存的数据地址很多重复了怎么办
- n个元素的数组找到第k大的数,最小时间复杂度(讨论到最后写了个堆排)
大概到这里,3月就结束了,中间还有虎牙/酷狗等等因为各种原因没有去面试(虎牙hr后面还打电话来问我要不要试试,可以说是很好人了),心情也比较低落,因为导师那边一直push论文,所以答主去写论文了,也没再去准备实习(自暴自弃)。
华为云/华为 简历面 1.2面
由于华为云有内推项目,可以内推到特定的项目组,和官网分开招聘所以先面了。但是其实不是很记得具体的问题了,比起华为的现场,华为云问的问题更像互联网公司(很全面但也很简单),由于我投的是负载均衡的组,所以额外问了一些负载均衡的问题。2面后无消息。
华为官网投递的话是要去现场面试,内容的话基本介绍一下项目就结束了,其他的都是谈人生,真的很玄学,就不记录了。。
网易游戏 游戏研发 1面
笔试以后收到4.16去现场面试的邮件,珠江新城
1. 自我介绍(这次由于介绍了研究方向,所以聊了很久)
2. C++多态 虚函数
3. B+树 复杂度
4. 求第k大的树 各自的复杂度 不同场景怎么选
5. tcp udp select epoll..
6. linux命令 awk sed
7. stl vector map
8. 50个红球50个白球,放到两个容器里,怎么放令拿出红球的概率最大
由于面试时间比较久了,所以问得比较少,差不多再问了几个就结束了。面试官很和蔼,体验很好,而且游戏研发只有1面,三天就出结果了,真的很感激也觉得自己很幸运:)
腾讯 微信 简历面 1.2面
重新笔试 性格测试以后被捞了,大概是这周二简历面,然后今早突然一面,下午组会前突然二面,组会结束了流程就显示hr面试,快到害怕
简历面
来的很突然,由于上午刚面了网易游戏正在躺尸,晚上就突然打过来了。。
这里要说不好意思,因为那天事情太多所以没记录下问题,只记得这是被虐得最惨的一次,每一个问题都会循序渐进,问到不会为止,例如会从new/malloc问到虚拟内存和物理内存问到汇编问到体系结构,直到不会为止,所以还是要调整好心态,因为到最后大部分人都会被问倒。
最后给了两道题选一道:
题目1:给定一个数组的两个区间,请实现算法将这两个区间的内容进行交换,尽可能优化时间空间复杂度(最好在原数组进行转换),函数原型如下,其中 [s1, e1] 与 [s2, e2] 分别代表两个闭区间:
void swap_range(std::vector<int>& arr, int s1, int e1, int s2, int e2);
对于输入 {1,2,[3,4],8,[5,7,6],9} 两个区间交换后,得到变成:{1,2,[5,7,6],8,[3,4],9}
题目2是: 有A B C D 4个候选广告,2个广告展示位。写一个广告推荐程序,每一次选择2个不同的广告去展示。要求多次推荐后,A B C D推荐次数出现的比例趋近4:3:2:1。广告越随机越好。
只做出了第一题,对方说综合考虑后通知。
1面
打了第一次没接到,然后就开始了,1面问的问题比较基础,涉及到的C++,网络,操作系统的题目大都是之前提过的,这里我把记得的写一下吧:
1. C++内存 虚函数
2. tcp udp
3. 如果想要tcp的功能,又想要用udp的速度怎么做
4. linux命令,实时查看文件等等
5. 字符串翻转
6. 1000瓶水,1瓶有毒,最少要多少只老鼠才能试出这瓶水
7. 10本书,可以一次取1本,一次取2本,取10本有多少种取法
8. n个节点的二叉树的高
9. 归并排序的细节,复杂度
10. 问到数据库基本不会。。
2面
1. 自我介绍;问我有啥特长
2. C++ 拷贝构造函数 如何禁用
3. C++ 多态 dll
4. 集合有很多个短整数对,说一个数据结构使得其有序,给出插入,更新和删除的复杂度
5. 出现大量time_wait状态的原因
6. 问了很多关于redis,nginx,hadoop等等的问题(基本不会)
7. 因为项目太渣,问我亮点,所以说了一下研究方面续了命。。
8. 一致性哈希
9. gdb
10. 项目遇到问题怎么解决,这个感觉回答得还可以。。
11. 实习时间
最后再吐槽了一下我的数据库和项目经验(基本上所有面试官都吐槽了)。。说是他这边给我过了,如果有安排会再通知(然而每次面试都是突击),没多久就看到状态变hr面试了,一天就从灰色变成hr,效率快到害怕。。
不知不觉居然写了这么多。。排版没排好,给大家不好的阅读体验的话,不好意思。。中间还有一些面试,就不提了。
最后真的很感激遇到的面试官,大部分都很棒。
祝大家早日拿到想要的offer ^ ^(面试多微笑的话也许也会有所帮助)
————————分割线——————————
这里放一个广告,腾讯互娱魔方工作室秋招进行中~策划、开发、美术都在招,欢迎大家找我内推,直接私聊我就可以啦~也可以直接用简历砸我企业微信
想知道魔方是怎么培养毕业生的欢迎关注B站魔方超新星时代,看魔方实习是一种怎样的体验~https://b23.tv/9AeR8P,
#阿里巴巴##腾讯##华为##面经##C++工程师#