首战字节被算法惨虐,复盘一个月再战字节成功拿下 T3-1,
每一个程序员都拥有一座大厂梦,我也不例外,之前面试字节跳动,竟然被算法问倒了,很多算法都没解出来,解出来的也还不是最优解,才 2 面就凉凉了。回去之后也潜心复习了,准备了二战,如今终于进入了字节跳动,被录用。
以下展示的字节面试题(含答案)、学习包、实战文档等,均可以分享给大家
首战字节被挂
对于这个独角兽企业,LZ 当时报了很大的期望,但是没有确切的了解面试情况(对自己蜜汁自信),没有了解到字节对算法这么看重,稍稍懈怠了下,没想到直接挂了,字节面试流程还是很快的,意识到不对的时候已经晚了……
之前的面试题都有做总结,具体内容整理成了文档,本文是针对算法面试系列的,所以下面只展示了自己第一次面试字节时被血虐的算法题。
给定一个整型数组,查找三个元素相加等于 0 的所有三元组,要求去重
给定一个数组,调整该数组,使其满足堆的性质(初始化建堆)
之字形打印二叉树,使用辅助栈实现,实现完后问我:不使用辅助空间怎么做。回答递归,并且递归时记录当前层数
给定 n 个单词,如果单词组成一致但是元素顺序不一致,该对单词为同位词,例如:abc,bca 为同位词.求所有同位词的集合输出
二战字节
一面
1、问项目
2、任务系统怎么保证任务完成后发奖一定成功
3、zset 延时队列怎么实现的
4、redis 数据结构有哪些?分别怎么实现的?
5、redis 的持久化
6、mysql 的索引
7、一个无序数组找其子序列构成的和最大,要求子序列中的元素在原数组中两两都不相邻
二面
1、Redis 的 ZSET 怎么实现的? 尽量介绍的全一点,跳跃表加哈希表以及压缩链表
2、Redis 的 ZSET 做排行榜时,如果要实现分数相同时按时间顺序排序怎么实现? 说了一个将 score 拆成高 32 位和低 32 位,高 32 位存分数,低 32 位存时间的方法。问还有没有其他方法;
3、MySQL 事务的四个隔离级别? 先说了四个级别的区别,然后说了每个级别可能产生的问题
4、binlog 日志和 redolog 日志清楚吗? 说了两个日志的作用以及两阶段提交
5、C++ 的动态多态怎么实现的?
6、C++ 的构造函数可以是虚函数吗?
7、缺失的第一个正数(leetcode 第 41 题)
8、linux 系统里,一个被打开的文件可以被另一个进程删除吗?
9、一个 10M 大小的 buffer 里存满了数据,现在要把这个 buffer 里的数据尽量发出去,可以允许部分丢包,问是用 TCP 好还是 UDP 好?为什么?
10、一个完整的 HTTP 请求会涉及到哪些协议?
三面
1、问项目
2、redis 的 ZSET 是怎么实现的?
3、让你设计一个限流的系统怎么做?
4、让你设计一个延时任务系统怎么做?说了两个方案,一个是使用 redis 的 ZSET 来实现,考虑分片来抗高并发,使用 redis 的持久化来实现落地,使用 redis 的哨兵实现故障转移。 一个是使用时间轮的方法。
5、现有一个随机数生成器可以生成 0 到 4 的数,现在要让你用这个随机数生成器生成 0 到 6 的随机数,要保证生成的数概率均匀。
6、有 N 枚棋子,每个人一次可以拿 1 到 M 个,谁拿完后棋子的数量为 0 谁就获胜。现在有 1000 颗棋子,每次最多拿 8 个,A 先拿,那么 A 有必胜的拿法吗?第一个人拿完后剩余棋子的数量是 8 的倍数就必胜,否则就必输。
7、给出一棵二叉树的根节点,现在有这个二叉树的部分节点,要求这些节点最近的公共祖先。
四面(HR)
到这一步就是正常走流程了,就不叙述了……
二战前,我是如何复习的?
LZ 其他技术掌握的还算牢靠,主要是算法方面有些欠缺,复习时主攻的算法
限于文章篇幅原因,只能以截图的形式展示出来,有需要的小伙伴 点击这里凭本文截图即可获取!
左程云左神《程序员代码面试指南》
本书选取将近 200 道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到万无一一失。 “刷”完本书后,你就是“题王”!
本书采用题目+解答的方式组织内容,并把面试题类型相近或者解法相近的题目尽量放在一起,读者在学习本书时很容易看出面试题解法之间的联系,使知识的学习避免碎片化。书中将所有的面试题从难到易依次分为“将、校、尉、士”四个档次,方便读者有针对性地选择“刷”题。
本书所收录的所有面试题都给出了最优解讲解和代码实现,并且提供了一些普通解法和最优解法的运行时间对比,让读者真切地感受到最优解的魅力!
左程云左神算法视频
某大神整理的算法笔记
这份笔记内容都是纯手打的,排序算法/数据结构的代码可能不是最优解,代码的实现都是以比较容易理解的方式去写的。几乎每句代码都有对应的注释,应该是能看懂的。
某大神的专业刷题笔记
动态规划专题
LeetCode:695. 岛屿的最大面积
LeetCode:474. 一和零
LeetCode:1314. 矩阵区域和
LeetCode:714. 买卖股票的最佳时机含手续费
限于文章篇幅原因,就展示到这里了,有需要的小伙伴 点击这里凭本文截图即可获取!
评论