目录大纲
算法是前端面试中的硬核考点,尤其在字节、腾讯、阿里等大厂的二面/三面中几乎是必考项。它直接反映候选人的逻辑思维、抽象建模和工程落地能力,是区分"会用框架"与"能写底层"的关键指标。即使是偏业务的前端岗,能流畅写出二分、回溯、DP 的基本模板,也能显著提升竞争力。
本分类覆盖范围
本分类聚焦于面试高频的算法范式与典型题,所有代码用 TypeScript 给出,并附复杂度分析与适用场景:
- 排序算法:冒泡、选择、插入、快排、归并、堆排序的实现、稳定性对比与选型。
- 二分查找:标准模板、查找边界、旋转数组、二分答案。
- 双指针与滑动窗口:快慢指针、左右指针、滑动窗口框架及经典应用。
- 动态规划:重叠子问题、状态转移、记忆化 vs 制表,背包/LCS/LIS/编辑距离等经典题。
- 回溯与 BFS/DFS:回溯框架(全排列/子集/N 皇后)、BFS(最短步数)、DFS(岛屿问题)。
- 贪心算法:贪心思想、与 DP 的区别、跳跃游戏/分发糖果/区间调度等。
与数据结构分类互补
本站 basic、pattern 等分类侧重数据结构与设计模式的概念理解,本分类则侧重算法范式与解题技巧。建议交叉阅读:
- 学完链表/栈/队列的基础概念后,再来本分类做相关算法题(链表反转、双指针删除)。
- 学完树/图后,结合本分类的 BFS/DFS 章节加深应用理解。
- 学完哈希表后,配合双指针、滑动窗口章节,体会"空间换时间"的优化思路。
刷题路径建议
按"模板优先、由浅入深、专题突破"的顺序:
- 基础:排序(sorting)、二分(binary-search)、双指针(two-pointers)——这些是后续所有题的基础工具。
- 搜索:回溯与 BFS/DFS(backtracking-bfs-dfs)——决策树与状态空间搜索的通用武器。
- 优化:动态规划(dynamic-programming)、贪心(greedy)——从暴力到最优的跨越。
- 进阶:结合 LeetCode Hot 100 / 剑指 Offer,按专题二刷巩固。
每篇文章末尾都附"经典题目清单",可作为按图索骥的刷题指南。建议每道题写完代码后,主动用例验证、分析复杂度、讨论边界,养成工程化的思考习惯。