写点什么

首战字节被算法惨虐,复盘一个月再战字节成功拿下 T3-1,

  • 2023-03-15
    湖南
  • 本文字数:1867 字

    阅读完需:约 6 分钟

每一个程序员都拥有一座大厂梦,我也不例外,之前面试字节跳动,竟然被算法问倒了,很多算法都没解出来,解出来的也还不是最优解,才 2 面就凉凉了。回去之后也潜心复习了,准备了二战,如今终于进入了字节跳动,被录用。


以下展示的字节面试题(含答案)、学习包、实战文档等,均可以分享给大家

首战字节被挂

对于这个独角兽企业,LZ 当时报了很大的期望,但是没有确切的了解面试情况(对自己蜜汁自信),没有了解到字节对算法这么看重,稍稍懈怠了下,没想到直接挂了,字节面试流程还是很快的,意识到不对的时候已经晚了……


之前的面试题都有做总结,具体内容整理成了文档,本文是针对算法面试系列的,所以下面只展示了自己第一次面试字节时被血虐的算法题。


  1. 给定一个整型数组,查找三个元素相加等于 0 的所有三元组,要求去重

  2. 给定一个数组,调整该数组,使其满足堆的性质(初始化建堆)

  3. 之字形打印二叉树,使用辅助栈实现,实现完后问我:不使用辅助空间怎么做。回答递归,并且递归时记录当前层数

  4. 给定 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. 买卖股票的最佳时机含手续费

限于文章篇幅原因,就展示到这里了,有需要的小伙伴 点击这里凭本文截图即可获取!

用户头像

还未添加个人签名 2021-07-28 加入

公众号:该用户快成仙了

评论

发布
暂无评论
首战字节被算法惨虐,复盘一个月再战字节成功拿下T3-1,_Java_做梦都在改BUG_InfoQ写作社区