渣硕一枚,春招投了不少简历,经过面试也学到和不少东西,分享一下面经。java
项目,主题模型python
一个数据流,只能访问一次,如何保证访问每一个数据的频率相同mysql
c++11 future和promiselinux
epoll,libev优势c++
构造函数能不能重写(没听清要问什么)程序员
面向对象的优势:更易维护,增长代码的重用面试
大文本如何排序redis
最优二叉树(我说数据结构比较熟,他说那我考你一个最优二叉树。没答出来,觉得是排序二叉树。。若是问我哈夫曼树我就会了。。)算法
栈和队列sql
栈空间,堆空间,静态区
栈区:有编译器自动分配释放,堆区:由程序员分配释放
静态区:全局变量和未初始化的静态变量
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指针。
回复等通知,不过我感受挂了,微信里面也查不到状态。
项目
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)
问了一下本身在学校中和本身家庭的一些状况。
问了一下本身从此的职业发展。
反正随便聊天,面试官蛮亲切的。
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~
掘金技术征文连接👉 juejin.im/post/5aaf2a…