终于进字节跳动了!这里说的不是我自己,而是我的一位朋友。
为了成功进入字节,他都做了哪些准备的呢?他准备的重点内容是数据结构和算法。
在此,他给大家推荐这份来自字节跳动大佬的算法进阶指南,据说有不少小伙伴都靠这份指南成功掌握了算法的核心技能,拿到了 BAT offer。希望对大家有帮助。
这份资料是 70K Star 的《2021最新数据结构与算法面试手册》。
《2021最新数据结构与算法面试手册》
Java工程师
- 请说⼀说,Java中的HashMap的⼯作原理是什么?
- 介绍⼀下,什么是Hashmap?
- 讲⼀讲,如何构造⼀致性哈希算法
- 请谈⼀谈,hashCode() 和equals() ⽅法的重要性体现在什么地⽅?
- 请问,Object作为HashMap的key的话,对Object有什么要求吗?
- 请问 hashset 存的数是有序的吗?
⼆叉树
- 求⼆叉树的最⼤深度
- 求⼆叉树的最⼩深度
- 求⼆叉树中第k层节点的个数
- 求⼆叉树中节点的个数
- 判断⼆叉树是否是平衡⼆叉树
- 判断⼆叉树是否是完全⼆叉树
链表
- 谈⼀谈,bucket如果⽤链表存储,它的缺点是什么?
- 如何反转单链表
- 现在有⼀个单向链表,谈⼀谈,如何判断链表中是否出现了环
- 随机链表的复制
数组
- 写⼀个算法,可以将⼀个⼆维数组顺时针旋转90度。
- ⼀个数组,除⼀个元素外其它都是两两相等,求那个元素?
- 找出数组中和为S的⼀对组合,找出⼀组就⾏
- 求⼀个数组中连续⼦向量的最⼤和
- 寻找⼀数组中前K个最⼤的数
排序
- ⽤Java写⼀个冒泡排序?
- 介绍⼀下,排序都有哪⼏种⽅法?请列举出来
- 介绍⼀下,堆排序的原理是什么?
- 介绍⼀下,归并排序的原理是什么?
- 谈⼀谈,如何得到⼀个数据流中的中位数?
字符串
- ⼿写代码:转换成⼩写字⺟
- ⼿写代码:有效的字⺟异位词
- ⼿写代码:最⻓公共前缀
由于篇幅原因,老皮就不一一列举了,有对文中资料感兴趣的,也可通过以下方式免费获取
扫描二维码关注公众号,回复: 14240470 查看本文章![]()