跳到主要内容

LeetCode Hot 100 教程

该教程按照官方精选的 Hot 100 题目,结合数据结构与算法的分类,为您提供系统化的刷题指导。每道题目都包含题目描述解题思路以及 Java 代码实现

教程目录

1. 基础技巧

  • 哈希 - 两数之和、字母异位词分组、最长连续序列
  • 双指针 - 移动零、盛最多水的容器、三数之和、接雨水
  • 滑动窗口 - 无重复字符的最长子串、找到字符串中所有字母异位词
  • 子串 - 和为 K 的子数组、滑动窗口最大值、最小覆盖子串
  • 技巧 - 只出现一次的数字、多数元素、下一个排列等

2. 线性和矩阵

  • 普通数组 - 最大子数组和、合并区间、轮转数组等
  • 矩阵 - 矩阵置零、螺旋矩阵、旋转图像、搜索二维矩阵 II
  • 链表 - 反转链表、环形链表、两数相加、合并 K 个升序链表等

3. 三大核心:树、图、搜索

  • 二叉树 - 中序遍历、最大深度、验证二叉搜索树、最近公共祖先等
  • 图论 - 岛屿数量、腐烂的橘子、课程表、实现 Trie
  • 回溯 - 全排列、子集、组合总和、N 皇后
  • 二分查找 - 搜索插入位置、搜索旋转排序数组、中位数问题

4. 进阶结构与算法

  • - 有效的括号、最小栈、每日温度、柱状图最大矩形
  • - 数组中的第 K 个最大元素、前 K 个高频元素、数据流中位数
  • 贪心算法 - 买卖股票、跳跃游戏等

5. 动态规划

  • 动态规划 - 爬楼梯、杨辉三角、打家劫舍、最长递增子序列等
  • 多维动态规划 - 不同路径、最小路径和、最长回文子串、编辑距离

学习建议

  1. 先思考再看题解:每道题先在力扣上尝试自己编写,遇到瓶颈再查阅本教程。
  2. 掌握核心思路:不仅要看懂代码,更要理解为何这样解决(思路部分)。
  3. 复杂度分析:注意每种解法的时间和空间复杂度,这是面试中的核心考察点。