|
渣硕一枚,春招投了很多简历,通过面试也学到和很多东西,分享一下面经。
阿里电面
项目,主题模型 一个数据流,只能访问一次,如何保证访问每个数据的频率相同 c++11 future和promise epoll,libev优点 构造函数能不能重写(没听清要问什么) 面向对象的优点:更易维护,增加代码的重用 大文本如何排序 最优二叉树(我说数据结构比较熟,他说那我考你一个最优二叉树。没答出来,以为是排序二叉树。。如果问我哈夫曼树我就会了。。) 栈和队列 栈空间,堆空间,静态区 栈区:有编译器自动分配释放,堆区:由程序员分配释放 静态区:全局变量和未初始化的静态变量 kmeans mongodb了解吗? linux如何扩大分区 之后探讨了一下今后发展方向,我说研究和工程比较偏工程,他好像不怎么满意的样子,已挂。
腾讯电面(没内推,被捞起来了):
map用的是红黑树,和AVL树的区别 map插入和删除需要注意什么 mongodb 和 mysql 差别 IO多路复用方式的区别 如何查看函数所占用的内存 gdb如何debug python数据处理库,numpy和pandas C++多态是怎么实现的,哪些函数不能是虚函数(构造函数,静态函数,inline函数) 25u-50结果是多少,u代表unsigned malloc(0)返回什么: 如果请求的长度为0,则标准C语言函数返回一个null指针或不能用于访问对象的非null指针。
回复等通知,不过我感觉挂了,微信里面也查不到状态。
头条视频面(3月31号):
一面:
项目 mongodb,mysql,redis redis中hash的结构 签到的表设计 flask,sqlalchemy mongodb,mysql, redis的不同点 b+树,存储方式 https和http的不同 http返回码 查找最长回文串(可以动态规划) https://blog.csdn.net/shineboyxxb/article/details/52079360 我写了个暴力,给我过了
二面:
项目 mysql的引擎,区别(myisam, innodb) mysql,mongodb各种索引是什么,区别 多进程和多线程的不同 多进程和多线程的同步 静态变量什么时候初始化 mysql四种隔离状态 MVCC [0, n), n个数,范围[0, n-1], 求是否有重复方法 求第k大的数的方法以及各自的复杂度 当有相同元素时,求第k大的元素的方法(类似快排,手撕)
三面:
项目 什么时候会发生segmentfault ip地址有什么用,ip地址和mac地址 系统中断是什么,用户态和内核态的区别 给你一个数组,再给你几对数,这几对数只能够同时出现或者不同时出现,求拿出k个数的可能性(true or false)(手撕,dfs标号+dp)
官网状态还在面试中,估计还是备胎,基础答的不够好,但是还好代码都写出来了。
酷家乐(现场面):
一面:
项目 实现一个买票系统:实现买票,退票,检票。给一个小时,手撕,文件流+map搞一下就行了,API之类的可以百度。
二面:
项目 数据流,如何获取中位数,复杂度 一到一百万的素数,怎么快速求 有一堆数,再给你很多对数,每对数都在同一个组,求一共有多少组数 有很多蜡烛,每根蜡烛1个小时,求15分钟怎么计时
三面:
数据库mongodb和mysql的不同 innodb的4种隔离方式 索引相关的东西 如何设计一个分布式配置系统,更新配置之后1秒钟内能够同步所有客户端(这个答的不太好,因为分布式基础比较薄弱)
四面:
家常
已拿offer,酷家乐面试体验是最好的,而且公司环境不错。不过我太熟悉Java,还是想写C++。所以没去。
网易游戏(视频面):
一面:
自我介绍 介绍一个项目 数据库了解吗? 为什么析构函数要是虚函数,为什么c++没有默认析构函数为虚函数 1.模板成员函数不可以是虚函数 https://blog.csdn.net/zzuchengming/article/details/51763563 2.C++里面有很多小类,如果都有虚析构函数,则会对每个类都加一个虚表指针,浪费内存 手撕: 1/x + 1/y = 1/n 求最小的n,使得对数超过1000 刚开始推了个公式,写了个暴力,解释给面试官听,不过面试官没听懂,然后他告诉我解的方法,也是暴力,又重新写了一遍,还是没跑出来。面试结束之后才跑出来,跑了10多分钟,答案是180180(不知道答案对不对)
二面:
介绍一个项目 C++11 的新特性 auto,shared_ptr, weak_ptr, unique_ptr forward, move完美转发 RAII机制,lock_guard java,可达性分析 新生代,老年代 C++11的template和java的范型区别 https://www.zhihu.com/question/33304378 如何制作一个游戏,当用户到达一个视野之后,怎么更新怪物 怪物有愤怒值,怎么去设定这些事 离散化,染色 这次二面体验很好,有些问题不会面试官会一步步引导你怎么做,涨了很多姿势。 目前不知道有没有三面,不过腾讯已经收到offer了,所以应该不会面了。
腾讯现场面
腾讯一面:
自我介绍 手撕: 1.字符串去空格 2.十六进制转十进制 如何求前100大的数 堆和栈的区别 全局的const,在函数里面改const的值(没理解面试官问什么) io多路复用,为什么epoll比较好,什么时候select比较好 两种触发方式 进程间通信 共享单车如何分配 有一户家庭,生了两个娃,其中一个是女孩,另外一个是女孩的概率 栈实现队列,队列实现栈 STL set用什么实现,为什么用红黑树实现 hash用在什么地方 各种排序空间复杂度和时间复杂度,稳定程度 快排什么时候最不稳定 linux基本命令 查看进程,线程,函数的cpu占用 gdb 字节序,网络序是什么字节序,为什么会有不同的字节序
腾讯二面:
介绍了一下组是做什么的 自我介绍 在学校里面学了什么 怎么学习的 项目介绍 手撕:求一个集合的所有子集,递归实现,非递归实现 本来想问一下围棋怎么数目,不过不懂围棋的规则,所以面试官换了下面的一个题 手撕:去除包含4的数字,求一个数字是第几个数,比如5是第四个数(数位dp)
腾讯hr面:
问了一下自己在学校中和自己家庭的一些情况。 问了一下自己今后的职业发展。 反正随便聊天,面试官蛮亲切的。
19号收到offer,原来我一直以为我是SNG的,收到offer居然是TEG的 233
微软现场面:
一面:
稍微问了一下项目,介绍了一下组,是做云存储的。 手撕: 有一个楼梯,一共有n层,可以走a步,也可以走b步,问最高能走到哪里?(dp,O(n)) 增加一个条件,有一次条件可以回退一半,比如本来在第8层,可以有一次机会直接到第4层。(两次dp,O(n))
二面:
手撕: 一个数组,里面大多数都是成对的,只有两个数没有成对,求这两个数(异或搞一下,把数组分成两组) 设计题: get(), 每次取最小的数 Release(int num),释放num 比如调用3次get(),依次得到1, 2, 3 如果调用一次Release(2),再执行get(),会返回2 这个就相当于linux里面的文件描述符,每次往小的取。 我直接用优先队列(最小堆)和map(因为Release可能会对一个数字释放两次,所以要记录有没有释放过)实现的。 写test case
三面:
手撕: 求一个栈的pop序是否合法。 int to string, string to int。 这两个是库函数,要注意各种情况,比如string to int的时候,数字越界要抛出异常,要考虑负数,前置0等情况。 写出test case. 题目不是很难,主要是看你写代码的严谨性。
微软的面试一般有两轮,两轮之后如果面试官觉得你还不错则会有3面。微软基础不怎么会问,基本上都是考算法,要你站着用水笔在白板上写代码(比用纸写累好多),面试官也会非常重视test case,基本上每个问题代码写好之后都要你自己设计test case。 面试结束之后回去等结果,感觉问题不是很大(火车票,住宿费全报销,这点不错)。
最后
最终选择了腾讯,家在杭州,深圳有点远。不过对于快要毕业的人来说多去远方看看也蛮好。祝大家都能够拿到想要的offer~
哦,昨天做了爱奇艺的笔试,居然中奖了,在牛客上学到了很多东西,感谢牛客~祝牛客网发展地越来越来
转载自:https://www.nowcoder.com/discuss/76268 |
|