一站式解决前端面试遇到的算法问题,咱们只专注于前端高频算法。
(1)LeetCode 题目太多,不知从何刷起?面试题目有些是前端常考,有些是后端常考?
答:本站参照 CodeTop上的前端算法题目考察频度,抽取前 60 道题,知道你时间宝贵,咱们要把时间花在刀刃上。
(2)LeetCode 上面的题解鱼龙混杂,有些直接题目直接贴代码,没有任何分析过程,看不懂?
答:本站会带你理解题目,并且给出解题思路,分析时间&空间复杂度,一题多解,带你彻底搞懂。
(3)GitHub 有些仓库为了吸引关注数目,会尽量把所有题目列的很’全‘(刷不完那一种),根本没有照顾到求职心切的人的心情?
答:本站只做专精,不搞大而全。根据考试频率划分层次,让你做题时心里有数,减少求职者刷算法时的心理负担。
首先我们要做好一个心理准备,对于大多数算法小白或者平时没有刷算法题习惯的人来说,刷完第一遍肯定会忘的。
那么搞清楚刷题的目的(进大厂拿高薪)、要刷的次数(建议三次以上)、以及每一遍的刷题目的就很重要。
将知识梳理结构化有利于记忆,而且多刷几次可以加深记忆这是毋庸置疑的。
对于0基础小白,建议刷题前可先过一遍算法入门基础知识,以下是我梳理的一些基础知识点,
主要是:
(1)JS基础(你知道数组的哪些操作是会改变自身的?sort方法你真的了解?)
(2)大学计算机专业课之一算法与数据结构
这门课的主要内容的总结。(非科班同学必看,科班同学也可以复习一下)
推荐刷题顺序:
第一遍:
刷前端高频60,先把题目看懂,尝试自己解出来,实在想不出答案直接看题解,千万别浪费时间硬刚,
其次要把题解看透,每一种解法的时间复杂度是怎么来的搞清楚,每一种解法思路&优劣也要搞清楚
第二遍:
参考专题突破的分类,学习一些相应的解题技巧,自己要会总结记到本本上,比如遇到“二叉树”遍历相关题型,首先想到 DFS & BFS
第三遍:
自己不看答案,靠自己前面两遍的刷题记忆以及自己总结的解题技巧,认认真真把每道题做出来,做不出来的题就圈出来,分析一下做不出来的原因
更多遍:
针对于第三遍做题技巧和思路的查漏补缺
Windows or Linux 可以用 (CTRL + click)题目 or 题解 打开一个新窗口。
这样当前页面可以保留,对于刷题比较友好。同理 MAC OS 可以用 CMD + click
已完成的题目我会将其序号加星号
序号 | 题目名称 | 考频 | LeetCode | 牛客 | 考点 | 难度 |
---|---|---|---|---|---|---|
1* | 无重复字符的最长子串 | 58 | 题目 题解 | 题目 题解 | 双指针 哈希 |
medium |
2* | 合并两个有序数组 | 44 | 题目 题解 | 题目 题解 | 双指针 |
easy |
3* | 字符串相加 | 39 | 题目 题解 | 题目 题解 | 双指针 模拟 |
easy |
4* | 比较版本号 | 38 | 题目 题解 | 题目 题解 | 字符串 |
medium |
5* | 有效的括号 | 37 | 题目 题解 | 题目 题解 | 栈 |
easy |
6* | 两数之和 | 34 | 题目 题解 | 题目 题解 | 哈希 |
easy |
7* | 爬楼梯 | 25 | 题目 题解 | 题目 题解 | 递归 动态规划 |
easy |
8* | 全排列 | 25 | 题目 题解 | 题目 题解 | 回溯 递归 |
medium |
9* | 最大子序和 | 26 | 题目 题解 | 题目 题解 | 贪心 动态规划 |
easy |
10* | 路径总和 | 24 | 题目 题解 | 题目 题解 | 递归 DFS |
easy |
11* | 反转链表 | 22 | 题目 题解 | 题目 题解 | 链表 递归 |
easy |
12* | 三数之和 | 22 | 题目 题解 | 题目 题解 | 双指针 |
medium |
13* | 二叉树的层序遍历 | 23 | 题目 题解 | 题目 题解 | 二叉树 BFS |
medium |
14* | 数组中的第K个最大元素 | 22 | 题目 题解 | 题目 题解 | 快速排序 二分 |
medium |
15* | 买卖股票的最佳时机 | 19 | 题目 题解 | 题目 题解 | 贪心 动态规划 |
easy |
16* | 手撕快速排序 | 19 | 题目 题解 | 题目 题解 | 快速排序 二分 |
medium |
17* | 环形链表 | 20 | 题目 题解 | 题目 题解 | 双指针 哈希 |
easy |
18* | 最长回文子串 | 21 | 题目 题解 | 题目 题解 | 动态规划 |
medium |
19* | 求根节点到叶节点数字之和 | 18 | 题目 题解 | 题目 题解 | DFS BFS |
medium |
20* | 二分查找 | 15 | 题目 题解 | 题目 题解 | 递归 |
easy |
已完成的题目我会将其序号加星号
序号 | 题目名称 | 考频 | LeetCode | 牛客 | 考点 | 难度 |
---|---|---|---|---|---|---|
21* | 岛屿数量 | 15 | 题目 题解 | 题目 题解 | DFS BFS |
medium |
22* | 括号生成 | 13 | 题目 题解 | 题目 题解 | 递归 |
medium |
23* | 合并两个有序链表 | 12 | 题目 题解 | 题目 题解 | 链表 递归 |
easy |
24* | 螺旋矩阵 | 13 | 题目 题解 | 题目 题解 | - - |
medium |
25* | 最长上升子序列 | 12 | 题目 题解 | 题目 题解 | 动态规划 贪心 二分 |
medium |
26* | 二叉树的中序遍历 | 13 | 题目 题解 | 题目 题解 | 二叉树 DFS BFS |
easy |
27* | 二叉树的最大深度 | 12 | 题目 题解 | 题目 题解 | 二叉树 - |
easy |
28 | 岛屿的最大面积 | 11 | 题目 题解 | 题目 题解 | DFS BFS |
medium |
29 | LRU缓存机制 | 11 | 题目 题解 | 题目 题解 | - - |
medium |
30 | 零钱兑换 | 12 | 题目 题解 | 题目 题解 | - - |
medium |
31 | 链表中倒数第K个节点 | 11 | 题目 题解 | 题目 题解 | 链表 - |
easy |
32 | 斐波那契数列 | 10 | 题目 题解 | 题目 题解 | 递归 - |
easy |
33 | 翻转二叉树 | 10 | 题目 题解 | 题目 题解 | 二叉树 - |
easy |
34 | 长度最小的子数组 | 9 | 题目 题解 | 题目 题解 | - - |
medium |
35 | 接雨水 | 9 | 题目 题解 | 题目 题解 | - - |
hard |
36 | 最长重复子数组 | 10 | 题目 题解 | 题目 题解 | - - |
medium |
37 | 二叉树的前序遍历 | 9 | 题目 题解 | 题目 题解 | 二叉树 - |
easy |
38 | 合并区间 | 10 | 题目 题解 | 题目 题解 | - - |
medium |
39 | 二叉树的锯齿形层序遍历 | 8 | 题目 题解 | 题目 题解 | 二叉树 - |
medium |
40 | 由前序中序遍历构造二叉树 | 8 | 题目 题解 | 题目 题解 | 二叉树 - |
medium |
已完成的题目我会将其序号加星号
序号 | 题目名称 | 考频 | LeetCode | 牛客 | 考点 | 难度 |
---|---|---|---|---|---|---|
41 | 不同路径 | 8 | 题目 题解 | 题目 题解 | |
medium |
42 | 青蛙跳台阶问题 | 8 | 题目 题解 | 题目 题解 | |
easy |
43 | 打乱数组 | 8 | 题目 题解 | 题目 题解 | |
medium |
44 | 相交链表 | 8 | 题目 题解 | 题目 题解 | |
easy |
45 | 旋转图像 | 7 | 题目 题解 | 题目 题解 | |
medium |
46 | 复原IP地址 | 7 | 题目 题解 | 题目 题解 | |
medium |
47 | 圆圈中最后剩下的数字 | 7 | 题目 题解 | 题目 题解 | |
easy |
48 | K个一组翻转链表 | 7 | 题目 题解 | 题目 题解 | |
hard |
49 | 斐波那契数 | 7 | 题目 题解 | 题目 题解 | |
easy |
50 | 二叉树的右视图 | 7 | 题目 题解 | 题目 题解 | |
medium |
51 | 最小栈 | 7 | 题目 题解 | 题目 题解 | |
easy |
52 | 打家劫舍 | 7 | 题目 题解 | 题目 题解 | |
medium |
53 | 两数相加 | 6 | 题目 题解 | 题目 题解 | |
medium |
54 | 移动零 | 6 | 题目 题解 | 题目 题解 | |
easy |
55 | 删除链表的倒数第 N 个结点 | 6 | 题目 题解 | 题目 题解 | |
medium |
56 | 最长公共前缀 | 6 | 题目 题解 | 题目 题解 | |
easy |
57 | 字符串相乘 | 6 | 题目 题解 | 题目 题解 | |
medium |
58 | 二叉搜索树中第K小的元素 | 6 | 题目 题解 | 题目 题解 | |
medium |
59 | 最小路径和 | 6 | 题目 题解 | 题目 题解 | |
medium |
60 | 阿拉伯数字转中文数字 | 5 | 题目 题解 | 题目 题解 | |
medium |
TODO LIST (已完成的加星号)
- 前端算法·专项攻破一:链表
- *前端算法·专项攻破二:二分查找&排序
- 前端算法·专项攻破三:二叉树
- 前端算法·专项攻破四:栈&队列
- 前端算法·专项攻破五:哈希
- 前端算法·专项攻破六:递归&回溯
- 前端算法·专项攻破七:动态规划
- 前端算法·专项攻破八:字符串
- 前端算法·专项攻破九:双指针
- 前端算法·专项攻破十:贪心
- 前端算法·专项攻破十一:模拟
本站持续更新(每周一凌晨更新20份题解,每个月的1号同步CodeTop上的考频),敬请期待……
每一个的一个小小的 star 都汇聚成我更新的动力,非常感谢您的关注。