大家好,我是好好学习天天编程的天天
一个整天在互联网上爬虫的程序员,每天给大家分享学习干货的攻城狮
如果你关注腾讯面试题,请参考:
腾讯C++面试题【合集】来啦~持续更新中
下面是今日头条(字节跳动)2020年面试真题整理,持续更新,敬请关注!
一面-2020/03/29 -牛客网
- 进程和线程、上下文切换了什么、共享了什么
- 线程独占什么、切换时候内核做了什么
- 七层模型、协议有哪些、arp、rarp
- 为什么要有ip和mac、mac地址是如何来的
- C++多态、继承、重载
- Map的种类
- 数据库语句!!!count(*)、count(1)、count(字段)
- group by、order by、distinct
- 一条sql语句,数据库做了什么?
- 缺页了怎么办,物理内存如何分配的
- 虚拟内存和物理内存,为什么
- B+树和红黑树
- 红黑树和一般的平衡二叉树,增、删、改、查的过程和效率、时间复杂度
- 有序数组,找出和为k的数对
如果你有不会的面试题,这里会有面试题讲解的视频
干货 | 名企高频考点-C++ vector基本使用
每天的视频我都会汇总到一起:
IT笔试面试真题讲解合集
二面-2020/03/29-牛客网
- 数据库组合索引,最左前缀,为什么
- 数据库事务特性
- 隔离机制有哪些,分别避免了什么
- http1.x的新特性
- 长连接和短连接,什么时候会出现
- 长连接是如何维持的,心跳机制,如果一直想要连接着怎么办
- 输入一个url发生了什么
- 二叉树各层节点数,递归、非递归,时间、空间复杂度
- 静态多态和动态多态
- 重载和覆盖
- 聚簇索引和非聚簇索引,实现区别,索引存在哪里了
- 主键索引存放
- 死锁是什么,死锁发生了怎么办
- 什么叫字节流,什么叫数据报
一面-2020/03/29-牛客网
- 进程和线程、上下文切换了什么、共享了什么
- ? 线程独占什么、切换时候内核做了什么
- 七层模型、协议有哪些、arp、rarp
- 为什么要有ip和mac、mac地址是如何来的
- C++多态、继承、重载
- Map的种类
- 数据库语句!!!count(*)、count(1)、count(字段)
- group by、order by、distinct
- 一条sql语句,数据库做了什么?
- 缺页了怎么办,物理内存如何分配的
- 虚拟内存和物理内存,为什么
- B+树和红黑树
- 红黑树和一般的平衡二叉树,增、删、改、查的过程和效率、时间复杂度
- 有序数组,找出和为k的数对
二面-2020/03/29-牛客网
1.数据库组合索引,最左前缀,为什么
2.数据库事务特性
3.隔离机制有哪些,分别避免了什么
4.http1.x的新特性
5.长连接和短连接,什么时候会出现
6.长连接是如何维持的,心跳机制,如果一直想要连接着怎么办
7.输入一个url发生了什么
8.二叉树各层节点数,递归、非递归,时间、空间复杂度
9.静态多态和动态多态
10.重载和覆盖
11.聚簇索引和非聚簇索引,实现区别,索引存在哪里了
12.主键索引存放
13.死锁是什么,死锁发生了怎么办
14.什么叫字节流,什么叫数据报
一面-2020/03/09-牛客网
unordered_map和map区别
STL,vector,list
C++多态,虚函数机制
进程通信
进程线程差异
TCP三次握手四次挥手细节
算法题:最长不重复字串(HashTable,O(N))
- 面试官人非常好,有一些遗漏的知识点会给你指出来并且讲解,也很耐心。
二面-2020/03/15-牛客网
C++多态(看程序说结果,比较复杂,考了有关虚函数表,还考察了override和overwrite,虚函数内部调用非虚函数是调用指针类还是对象类)
二叉搜索树
B树b+树
红黑树删除算法
用互斥锁实现读写锁,写者优先
- 算法题:有100个方格,每个上面有毒蘑菇和体力蘑菇,毒蘑菇减体力体力蘑菇加体力,当前体力是能跳到的最远距离,求是否能跳到最远方格,如果可以,求落在第100格上的最大剩余体力
三面-2020/03/17-牛客网
服务方法调用
RMI/RPC
序列化/反序列化
10亿找Top10000,需要考虑分片,如果用最小堆需要考虑高效合并
要考虑等待时间且带有优先权的打印机,设计数据结构使打印任务高效
二十四点牌
在三面开始的时候面试官问了能够实习的时间和想要实习的地点,猜测可能是leader直接面试(最后也正好去了这个面试官在的城市),人很和善,不过问题都不是我准备过的基础题型,碰到的时候还是有一点束手无策。
- 其实准备字节跳动的面试还是需要着重准备基础部分(数据结构、算法、操作系统、计算机网络),另外对做算法题的要求很高,如果在看到题目的时候能直接给出这个题目的最优时空复杂度解法,面试官对你的评价会很高。如果基础知识比较扎实了,可以看看网络上的面试经验,找找自己不会的知识点,查漏补缺。
一面-2020/03/24-牛客网
- 首先自我介绍
- 开篇直接做题,时间戳转换成日月日时分秒~继续讨论其余的情况。。(此时面试官突然说,算了,不问了吧,再问下去感觉你都快崩溃了)
- 讨论实验室项目
二面-2020/03/24-牛客网
- 自我介绍
- 问了一些个人情况,如为啥选后台,什么时候能实习,一周能工作几天,base选的哪
- 因为做过一些后台项目使用java语言开发的所以就问的我java,,,抽象类与接口的区别
- 一些c++的基础问题,讲一下const,指针与引用,new与malloc,内联函数,如何防止内存泄露等问题
- 一些操作系统的问题,讲一下进程、线程、协程,锁机制,信号量,开锁时如何通知其他线程等问题
- 编程题,判断一棵树是否为二叉搜索树,首先用递归判断实现的,后来有问不递归怎么实现(判断每一个点的中序后继节点是否大于该点),如何空间复杂度O(1),讲了一下morris遍历的原理
三面-2020/03/24-牛客网
- 自我介绍
- 什么时候能来实习,下半年能不能也来,base是哪(感觉是照例问的都是)
- 简单的介绍了一下项目,使用的技术框架,自己的职责
- spring的iop,aop(楼主是cpp选手,有java的项目,但对原理这一块不太了解,所以就简单的说一下自己的理解,面试官也没有继续深问)
- http请求的全过程,顺带着问了http报文格式
- cpp中的struct内存大小问题,注意空struct的sizeof为1,和字节对齐
- 权力反转,问了一下部门的工作内容,实习转正率
一面-2020/02/06-牛客网
自我介绍和项目延伸
讲了寄存器/cache优化的项目(我的项目经历来自学校课程实验,太简单不提了,但是再简单的项目也可以“加加戏”包装一下,提前准备一些可拓展说的知识点)
顺着项目问:如果要做一个栈,用数组的结构还是链表?(提示)数组和链表哪一个遍历的效率高?(解答:数组。考虑cache缓存,所以是一组一组读进去的,而链表肯定是一个一个读的)
cache和内存关系?
循环展开知道吗?
weak_ptr了解吗(我讲了解决shared_ptr的循环引用问题,面试官就没再问了,应该算押到考点...
move语义?(讲了移动构造函数的原理)
volatile?
template了解吗
元编程(meta programming) 了解吗
原子操作?
回答了大概概念(要么执行完,要么什么都不做),接着问 ”它可以用来解决什么问题?“
TCP和UDP区别,UDP使用场景
算法:
[1 2 3 4 5 6] 排列成[1 3 5 2 4 6] (奇数排右边,偶数排左边,不考虑顺序)(剑指offer原题)我先用了冒泡,然后面试官问了时间复杂度(O(n2)),想了一会后改成O(n)
- 股票问题 ([1 3 5 7 2 3 ]是每日股票价格,买一次卖一次,问如何使得收益最大,即求最大差)
二面-2020/02/28-牛客网
- 自我介绍
算法:多个有序数组排序 vector<int> fun( vector<vector<int> > )
- 先用了priority_queue + int [], 面试官同意想法后开始写,但是后来发现复杂度太高,改成map+int[]。
三面-2020/02/28-牛客网
- 自我介绍
实现一下 memcpy() [要点:地址重叠]
- 对void*你了解什么?
- int a[10000000]会有什么问题?
- 如果想让一个函数在main函数之前执行,该怎么做?
一面 -2020/03/28-牛客网
- protobuf向后兼容怎么做的。
- C++里面虚函数怎么实现的。
- 智能指针。
- C++单例模式实现
- 别的不记得了,但算法题还是记得的,删除倒数第k个节点并返回头指针,leetcode接雨水。
二面 -2020/03/28-牛客网
- 这个上来就是做题,做的是头条去年的笔试题好像,搜字节跳动笔试,扑克移动就能搜到了。
- 然后是100只老虎,一只羊,羊最后会不会被吃的问题,只答对了关键的一小部分。
- 内核创建进程时会自动打开哪几个文件。
一面-2020/03/25-牛客网
- 上来都没有自我介绍,直接写代码
- 实现一个类,该类在一个局部作用域中修改外层作用域的值,当局域作用域结束的时候,恢复外层作用域原来的值(析构函数和泛型编程)
- 给你n,k求一个数x使得x的n次方等于k,x保留五位有效数字(二分)
- 多个区间,问区间的最大重叠数量
- 一个整数数组,求区间min乘以区间sum的最大值(前缀和+单调栈)
- 对C++的泛型了解吗,底层如何实现?
- 进程间通信的最快方式?
- 使用共享内存通信有什么缺点?
- 有什么想问我的?
二面-2020/03/25-牛客网
- socket编程服务端和客户端调用函数的流程
- accepted函数的参数和返回值分别是什么
- C++的打开文件函数freopen和系统调用的open函数关系和区别
- TCP的拥塞控制
- 网络中的丢包原因
- 现场写了一个多态,问各种情况的运行情况,内存对象模型,问的比较底层
- 一个整数数组,两个人一次分别从左边或者右边拿走一个数,两个人足够聪明,求第一个人拿到数的最大和
一面-2020/03/23-牛客网
- leetcode 152
- leetcode 853
二面-2020/03/23-牛客网
- 先二分出k的位子,然后这个位子开始二分左边有x个,那么右边就有k-x个,根据这个情形是否是我们需要的答案就可以判断了。
- 栈+dfs+时间戳标记
- 裸的ac自动机
如果有不会的面试题,请参考:
干货 | 名企高频考点-C++ vector基本使用
每天的视频我都会汇总到一起:
IT笔试面试真题讲解合集