01 拼多多(2面技术+HR面)
一面
- 聊项目,很细
- 重解笔试题目
- Mqtt,Http,WebSocket协议相关内容
- C++ 多态实现
- 预编译保护
- 动态链接和静态链接
- 进程fork过程
- C++构造函数和析构函数相关
- 深拷贝和浅拷贝
- 虚函数和内联
- C++内存分配
- O(logn), O(n), O(nlongn), O(n^2), O(n^logn), O(n^3)算法各举一个例子
- map 和 hashMap 底层实现
- hash 函数、hash冲突相关
- 稳定排序和不稳定排序,各种排序算法复杂度
- Graphql、 Restful
- 题目1.给一个序列,如{1,4,6,3,8,7},然后打印相应的柱状图
- 题目2.给定一个函数 g(x) 可以以概率 p 产生1, 概率 1-p 产生0, 让你利用g(x)写一个 f(x), 可以以概率 q 产生1, 概率 1-q 产生0;
二面
- 聊的知识面非常宽泛,天南海北的聊
- 项目相关
- Tcp, Udp区别,Tcp拥塞控制、三次握手、HTTP协议、ARP协议、如何检测发生碰撞、ICMP协议、DNS协议
- 数据从应用层到物理层,再到应用层的过程
- 内存对齐规则
- 多线程和多进程区别
- 多线程同步方式
- 进程间通信方式
- 用过哪些消息队列
- 共享内存的实现
- RPC
- 系统中断、中断向量表
- 用户空间和内核空间切换
- IO模型(阻塞、非阻塞、IO复用、信号驱动IO,异步IO)
- select, poll, epoll
- epoll 实现
- 静态链接和动态链接
- 虚拟内存,程序装载过程
- 使用TCP通信的过程(创建socket, bind, listen, accept ...)
- 红黑树、B树、 B+树
- 平衡转化的过程
- hash和红黑树对比
- 适配器模式(设计模式)
- 迭代器的实现
- 内核相关(不太会)
- golang 和 c++的区别
- copy on write
- fork
- 守护进程
- 软连接和硬连接
- 堆排序过程
- 题目:手写插入排序(就问你运气好不好!)
HR面
......
02 字节跳动(3面技术谈项目+HR面)
一面
- 项目相关
- const, static, explict, volatile关键字
- 虚函数实现(RTTI)
- 几个智能指针的实现,用法
- C++11新特性
- 模板特化
- new 和 malloc区别
- C++ 内存空间布局
- vector底层实现
- map, hashmap 底层实现
- rebase 和 merge 用法(git)
- bss段
- 多线程及同步、多进程通信方式
- 自己使用过的库,以及这个库的作用,实现(lcm, libconfig)
- 题目1. 多线程交替打印
- 题目2. 反转链表(递归和非递归方法)
二面
- 项目相关
- placement new
- 析构和构造函数与多态
- 如何限制对象只能在堆上创建
- 如何限制对象只能在栈上创建
- 如何让类不能被继承
- 如何控制 vector 的内存分配
- 多线程同步的实现
- 单例模式
- 工厂模式
- 优先队列
- 迭代器的实现
- range for 语句与动态插入删除
- 还有一堆记不清了(聊天式的面试,面试体验及佳)
- 题目: 实现 O(1) 的栈的 min()函数(双栈法)
三面(近两个小时)
- 聊项目,超级细
- 一些简单的问题,基本都是上面出现过的,就不赘述了
- 题目1. 给定几十万个ip集合,判断任意一个ip是否属于这个集合
- 题目2.给定一个字符串,判断该字符串是否是环等的(字符串首位相连,如果能找到一个位置,从这个位置顺时针得到的字符串和逆时针得到的字符串相等,即为环等)
- 题目3.数学题, 用一个公式表示一个数N的所有因数的和
03 360(2面技术+HR面)
一面
- 项目相关
- 多态实现
- static关键字用法
- 值传递和引用传递
- RPC
- 消息队列的实现
- epoll的实现
- override, overload, overwrite
- c++中调用C
- 临界区
- 手写strcpy函数
- 其他记不清了,(刚睡醒,面的迷迷糊糊的)
二面
- 项目相关
- websocket协议
- javaScript 和 C++通信
- OSM(地图相关,项目中提到)
- 卫星定位相关
- 给定一个人的经纬度,如何快速定位一个人位于哪一个大厦里(索引、多级索引的设计)
HR面
......
04 网易(2面技术+HR面)
一面
- static关键字
- const关键字
- 程序运行的局部性
- 程序装载过程
- 虚拟内存
- 深拷贝、浅拷贝
- 导致程序崩溃的错误有哪些
- TCP和UDP区别
- TCP拥塞控制
- 多进程和多线程
- 动态链接和静态链接
- C++多态实现(RTTI)
- 智能指针实现
- 向量点乘和叉乘
- 题目1. 全排列
- 题目2. 求一个向量在另一个向量的投影
- 题目3. 在一个序列中挑出一些数(两个数不能相邻),求所有被挑出的数的和的最大值(动态规划)
- 题目4. 给定一个函数 g(x) 可以以概率 p 产生1, 概率 1-p 产生0, 让你利用g(x)写一个 f(x), 可以以概率 q 产生1, 概率 1-q 产生0;
- 平时玩什么游戏、对游戏的看法,充不充钱,对充钱玩家的看法 ...
二面
- 聊项目
- C++的一些问题,基本上面的都已经覆盖
- 自己看过的书、自己想聊什么
- 题目1.给定一个序列{1,7,4,2,5,9},找到一个位置,将数组分为两个部分,使得这两个部分的和的差值最小(用三种方法)
- 题目2.给定一个矩阵,找到从左上到右下的路径和最小值,并找出这条路径;
- 题目3.数学题,三个盒子里面,有一个盒子装了一个宝藏,你随机选一个盒子,之后系统会给你去除一个没有宝藏的盒子,在接下来的2个盒子里面,你会坚持原来的选择还是重新选择另一个
HR面
......
由于篇幅原因,这里就不一一罗列各个大厂的面试真题了,小编将这些真题及其详细的答案解析全部整理成PDF文档了,有需要的朋友可以加QQ群:733234221免费领取我整理的秋招真题及答案。
MySQL20个必备面试题(含解析)+21条MySQL性能调优实践
架构专题面试真题汇总(Java,分布式,框架,中间件,Redis,Spring,并发,线程,Tomcat,设计模式...)
有疑问加站长微信联系(非本文作者)