一、前端刷算法的真实目标(先统一认知)
前端刷算法 不是为了写多炫的题,而是为了:
- ✅ 面试能做出来
- ✅ 讲得清思路
- ✅ 不被算法吓住
👉 70% 面试算法 = 简单 + 中等
二、前端算法必刷优先级(非常重要)
🟢 第一优先级(必须滚瓜烂熟)
① 数组(Array)
前端面试出现率 No.1
必会套路:
- 双指针
- 滑动窗口
- 去重
代表题:
- 两数之和
- 移除元素
- 合并有序数组
- 最大子数组和
② 哈希表(Map / Object)
JS 非常吃香
必会套路:
- 统计次数
- 快速查找
代表题:
- 两数之和(哈希)
- 有效的字母异位词
- 第一个不重复字符
③ 字符串
和业务强相关
必会套路:
- 反转
- 回文
- 子串
代表题:
- 反转字符串
- 验证回文串
- 最长公共前缀
🟡 第二优先级(面试高频)
④ 栈(Stack)
JS 很好用
必会套路:
- 括号匹配
- 最近相关
代表题:
- 有效的括号
- 最小栈
⑤ 二叉树(只刷基础)
前端不要求很深
必会套路:
- 递归
- 前中后序
代表题:
- 二叉树最大深度
- 翻转二叉树
- 对称二叉树
🔵 第三优先级(了解即可)
⑥ 动态规划(会 2–3 道就够)
- 爬楼梯
- 打家劫舍
三、前端刷算法「唯一正确姿势」
每一题必须走这 5 步(关键)
Step 1:自己想 5–10 分钟
哪怕只想到暴力,也要想
Step 2:写「能跑」的版本
不用最优,先正确
Step 3:找优化点
- 重复计算?
- 用 Map?
- 双指针?
Step 4:对照标准解
不是抄,是验证思路
Step 5:总结一句话
这是一道 XX 题型,核心是 XX 技巧
四、JS / TS 写算法的建议(前端专属)
推荐用 JS(面试最友好)
常用工具:
const map = new Map()
map.set(key, val)
map.get(key)
map.has(key)
arr.sort((a, b) => a - b)
不要用:
- 正则解算法(面试容易翻车)
- 太多 Array.prototype 花活
五、前端新手 30 天刷题计划(可执行)
🗓 第 1–7 天
- 数组 + 哈希
- 每天 2 题
🗓 第 8–14 天
- 字符串 + 栈
- 每天 1–2 题
🗓 第 15–21 天
- 二叉树
- 每天 1 题
🗓 第 22–30 天
- 动态规划(简单)
- 复刷错题
六、前端必刷题清单(精选 20 题)
数组 / 哈希
- 两数之和
- 移除元素
- 最大子数组和
- 有效的字母异位词
字符串
- 反转字符串
- 验证回文串
- 最长公共前缀
栈
- 有效的括号
- 最小栈
树
- 二叉树最大深度
- 翻转二叉树
DP
- 爬楼梯
- 打家劫舍
七、前端面试能「加分」的算法表达
面试时你可以这样说:
这道题我把它归类为数组 + 双指针问题,
用左右指针减少一次遍历,时间复杂度是 O(n)。
💯 面试官非常吃这一套
八、你下一步最该做的事(现在)
👉 选一个平台
- LeetCode
- 代码随想录