本文正在参与掘金团队号上线活动,点击 查看大厂春招职位
在面试过程中,算法题是必备环节,而且算法题有时候是决定面试的成败的重要因素。算法题有个特点,就是以前如果做过这道题或者类似的题,脑子里有思路的话,就会很快做出来。如果以前没做过的话,往往很难想出来。毕竟这些算法曾经也是前人花数月甚至数年研究出来的论文,我们都是站在巨人的肩膀上~
所以,平时要多刷算法题,增强自己的思维能力,做到触类旁通,举一反三。
为了方便更高效的刷算法题,我从各个互联网大厂的面经中整理出里面的算法题,并按照分类划分。这样我们可以集中时间刷某一类的算法,加深自己对某类题目的印象,
二叉树
分类 | 难度 | 题目 |
---|---|---|
DFS | 简单 | 104. 二叉树的最大深度 |
DFS | 简单 | 111. 二叉树的最小深度 |
BFS | 中等 | 102. 二叉树的层序遍历 |
BFS | 中等 | 107. 二叉树的层序遍历 II |
DFS | 中等 | 236. 二叉树的最近公共祖先 |
DFS | 简单 | 226. 翻转二叉树 |
DFS | 简单 | 101. 对称二叉树 |
困难 | 297. 二叉树的序列化与反序列化 | |
DFS | 简单 | 平衡二叉树 |
链表
分类 | 难度 | 题目 |
---|---|---|
简单 | 141. 环形链表 | |
中等 | 142. 环形链表 II | |
简单 | 02.07. 链表相交 | |
简单 | 剑指 Offer 24. 反转链表 | |
简单 | 剑指 Offer 25. 合并两个排序的链表 | |
数组
分类 | 难度 | 题目 |
---|---|---|
简单 | 数组去重 | |
中等 | 46. 数组全排列 | |
中等 | 11. 盛最多水的容器 | |
中等 | 把数组排成最小的数 | |
中等 | 179. 把数组排成最大数 | |
中等 | 1471. 数组中的 k 个最强值 | |
简单 | 剑指 Offer 40. 最小的k个数 | |
简单 | 704. 二分查找 | |
双指针 | 简单 | 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 |
中等 | 611. 有效三角形的个数 | |
简单 | 217. 存在重复元素 (或者是找到重复的值) | |
简单 | 剑指 Offer 09. 用两个栈实现队列 | |
中等 | 拍平数组 |
数组排序
知道不同算法的时间复杂度和空间复杂度
分类 | 难度 | 题目 |
---|---|---|
简单 | 插入排序 | |
中等 | 快速排序 | |
中等 | 归并排序 | |
简单 | 冒泡排序 |
字符串
分类 | 难度 | 题目 |
---|---|---|
中等 | 剑指 Offer 38. 字符串的全排列 | |
简单 | 125. 验证回文串 | |
中等 | 165. 比较版本号 | |
简单 | 20. 有效的括号 |
大数
分类 | 难度 | 题目 |
---|---|---|
简单 | 989. 数组形式的整数加法 (大数加法) | |
大数乘法 | ||
大数阶乘 |
其他
分类 | 难度 | 题目 |
---|---|---|
简单 | 剑指 Offer 10- I. 斐波那契数列 | |
简单 | 70. 爬楼梯 |