LeetCode 例题精讲

欢迎来到 LeetCode 例题精讲系列!本系列文章最初于 2019 至 2020 年在微信公众号上连载,现整理为博客系列。

本系列将通过精心挑选的例题,帮助你:

  1. 掌握链表、二叉树等经典数据结构的处理技巧
  2. 学习递归、遍历等常用算法思维
  3. 提升解决算法问题的能力

每一篇文章都会通过具体的例题,详细讲解问题的思考过程、解决方案,以及相关的知识点。

让我们开始算法学习之旅吧!

系列文章

01

反转链表:如何轻松重构链表

02

Path Sum:二叉树的子问题划分

03

从二叉树遍历到回溯算法

04

用双指针解 Two Sum:缩减搜索空间

04P

盛最多水的容器(蓄水池问题)

05

双指针×链表问题:快慢指针

05P

链表综合题:链表排序

06

基本操作的威力:以 reverse 为例

07

变位词问题:基本数据结构的威力

08

排列组合问题:回溯法的候选集合

09

排列组合问题再探:回溯法的去重策略

09P

一套代码解决 Combination Sum 系列问题

10

二叉树直径:二叉树遍历中的全局变量

11

二叉树转化为链表:二叉树中序遍历中的相邻结点

11P

二叉树问题太复杂?「三步走」方法解决它!

12

岛屿问题:网格结构中的 DFS

13

BFS 的使用场景:层序遍历、最短路径问题

14

打家劫舍:动态规划的解题四步骤

15

最长公共子序列:二维动态规划的解法

15P

经典动态规划:编辑距离

16

最大子数组和:子数组类问题的动态规划技巧

17

动态规划如何拆分子问题,简化思路

17A

动态规划只能用来求最值吗?

17P

一文教你股票买卖问题实用而装逼的解法

18

前缀和:空间换时间的技巧

L322

经典动态规划:「换硬币」系列三道问题详解