首战字节被算法惨虐,复盘一个月再战字节成功拿下T3-1
蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜我错过了,我用这五年时间和很多程序员一样在困惑和迷茫中找不到出路!
路其实一直都在那里,只是我们看不到而已!
以前我一直被公司和技术牵着走,并不是自己在选择技术,而是不自觉地被推到了这个位置上。想想有多少人对于自己将来要从事的职业和技术类型进行过深入思考和比较呢?当我跳出编码后,我开始思考和程序及程序员职业生涯相关的问题,最后发现,影响我们走入今天的困局的竟然是一些我们常常挂在嘴边的话。
每一个程序员都拥有一座大厂梦,我也不例外,之前面试字节跳动,竟然被算法问倒了,很多算法都没解出来,解出来的也还不是最优解,才2面就凉凉了。回去之后也潜心复习了,准备了二战,如今终于进入了字节跳动,被录用。
首战字节被挂
对于这个独角兽企业,LZ当时报了很大的期望,但是没有确切的了解面试情况(对自己蜜汁自信),没有了解到字节对算法这么看重,稍稍懈怠了下,没想到直接挂了,字节面试流程还是很快的,意识到不对的时候已经晚了……
- 给定一个整型数组,查找三个元素相加等于0的所有三元组,要求去重* 给定一个数组,调整该数组,使其满足堆的性质(初始化建堆)* 之字形打印二叉树,使用辅助栈实现,实现完后问我:不使用辅助空间怎么做。回答递归,并且递归时记录当前层数* 给定n个单词,如果单词组成一致但是元素顺序不一致,该对单词为同位词,例如:abc,bca为同位词.求所有同位词的集合输出
02二战字节
一面
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)
到这一步就是正常走流程了,就不叙述了……
字节算法面试题

03 二战前,我是如何复习的?
LZ其他技术掌握的还算牢靠,主要是算法方面有些欠缺,复习时主攻的算法
左程云左神《程序员代码面试指南》

本书选取将近200道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到万无一一失。 “刷”完本书后,你就是“题王”!
本书采用题目+解答的方式组织内容,并把面试题类型相近或者解法相近的题目尽量放在一起,读者在学习本书时很容易看出面试题解法之间的联系,使知识的学习避免碎片化。书中将所有的面试题从难到易依次分为“将、校、尉、士”四个档次,方便读者有针对性地选择“刷”题。本书所收录的所有面试题都给出了最优解讲解和代码实现,并且提供了一些普通解法和最优解法的运行时间对比,让读者真切地感受到最优解的魅力!

左程云左神算法视频

某大神整理的算法笔记
这份笔记内容都是纯手打的,排序算法/数据结构的代码可能不是最优解,代码的实现都是以比较容易理解的方式去写的。几乎每句代码都有对应的注释,应该是能看懂的。

某大神的专业刷题笔记
动态规划专题
LeetCode:695. 岛屿的最大面积

LeetCode:474. 一和零

LeetCode:1314. 矩阵区域和

LeetCode:714. 买卖股票的最佳时机含手续费

由于篇幅限制,很多内容都只展示了目录和截图,这些都整理在文档里,需要这些文档资料的,均可以分享给大家,希望所有的程序员都能够学习起来,努力实现我们的大厂梦!
更多推荐

所有评论(0)