LeetCode Top 100 面试高频题完整指南
一、总体概述
本文档整理了 LeetCode 中最经典的 Top 100 道面试高频题目,这些题目涵盖了算法与数据结构的核心知识点,是进入大厂(如字节跳动、阿里巴巴、腾讯、百度等)面试的必备刷题清单。根据历年面经统计,这 100 道题目覆盖了 80% 以上的算法面试考点。
1.1 学习目标
通过系统学习这 100 道题目,读者应达到以下目标:
- 掌握核心算法思想:理解暴力解法到最优解的优化过程,学会分析时间空间复杂度
- 建立解题思维框架:面对新题时能快速识别题目类型,调用对应的解题模板
- 熟练编码实现:能够快速写出正确、高效、规范的代码
- 应对面试考核:能够在有限时间内完成题目,并与面试官有效沟通
1.2 题目分类统计
| 类别 | 题目数量 | 占比 | 重要性 |
|---|---|---|---|
| 数组与字符串 | 20 | 20% | ⭐⭐⭐⭐⭐ |
| 链表 | 8 | 8% | ⭐⭐⭐⭐ |
| 二叉树与递归 | 15 | 15% | ⭐⭐⭐⭐⭐ |
| 动态规划 | 18 | 18% | ⭐⭐⭐⭐⭐ |
| 哈希表 | 6 | 6% | ⭐⭐⭐⭐ |
| 滑动窗口与双指针 | 10 | 10% | ⭐⭐⭐⭐⭐ |
| 回溯与 DFS/BFS | 12 | 12% | ⭐⭐⭐⭐ |
| 贪心算法 | 5 | 5% | ⭐⭐⭐ |
| 排序与二分 | 6 | 6% | ⭐⭐⭐⭐ |
1.3 核心算法模式总结
1. 双指针技巧
- 快慢指针:用于检测链表环、删除链表节点 O(n)
- 左右指针:用于数组二分查找、滑动窗口 O(n)
- 对撞指针:用于排序数组的两数之和、三数之和 O(n)
2. 哈希表思想
- 用空间换取时间,将查找从 O(n) 优化到 O(1)
- 常见应用:两数之和、字母异位词分组、LRU 缓存
3. 滑动窗口
- 维护一个可滑动的窗口,动态调整窗口大小
- 适用于子串、子数组问题
- 模板:右指针扩展 → 收缩条件 → 左指针收缩 → 更新结果
4. 动态规划
- 识别重叠子问题,定义状态转移方程
- 优化方向:空间压缩(从二维到一维)
- 经典问题:背包问题、最长序列、股票买卖
5. DFS 与 BFS
- DFS:递归实现,适合遍历、路径搜索
- BFS:队列实现,适合最短路径、层序遍历

