Skip to content

数据结构与算法系列笔记(代码随想录精华)

👋 欢迎来到数据结构与算法系列!

本系列主要整理自"代码随想录"与 Leetcode 经典题解,结合个人理解与实战经验,适合算法初学者和进阶者查阅。内容涵盖数组、链表等核心数据结构与常见算法题型,力求让每一篇都通俗易懂、实用有体系。

为什么要做这个系列?

  • 记录自己在代码随想录算法训练营的刷题经历。
  • 通过做系统化笔记,方便自己复习,也能帮助更多同学高效刷题。
  • 希望把零散的算法知识串成体系,降低入门门槛。

数据结构分类

按照不同的数据结构类型,我将笔记分为以下几个专题:

📚 数组专题

数组是最基础的数据结构之一,也是算法题中最常见的题型。

  • 二分查找
  • 双指针技巧
  • 滑动窗口
  • 矩阵操作

🔗 链表专题

链表是一种常见的线性数据结构,由节点组成,每个节点包含数据和指向下一个节点的指针。

  • 链表的基本操作
  • 虚拟头节点的使用
  • 链表反转
  • 快慢指针技巧

🔍 哈希表专题

哈希表是一种高效的数据结构,支持快速的插入、删除和查找操作。

  • 计数与查找
  • 去重操作
  • 数组作为简易哈希表
  • 多重哈希表应用

📝 字符串专题

字符串是由字符组成的序列,是编程中最常见的数据类型之一。

  • 字符串的基本操作
  • 双指针在字符串中的应用
  • 字符串匹配算法

📚 栈与队列专题

栈和队列是两种重要的线性数据结构,具有特殊的插入和删除规则。

  • 栈的基本操作(后进先出)
  • 队列的基本操作(先进先出)
  • 栈与队列的相互实现
  • 单调栈与单调队列
  • 优先队列(堆)的应用

🌳 二叉树专题

二叉树是一种重要的非线性数据结构,每个节点最多有两个子节点。

  • 二叉树的基本概念和性质
  • 二叉树的遍历方法(前序、中序、后序、层序)
  • 二叉搜索树的特性和操作
  • 二叉树的构造与修改
  • 二叉树的路径和深度问题

🔄 回溯算法专题

回溯算法是一种通过试错来寻找问题解的算法,当发现当前选择不能得到有效解时,就回退并尝试其他选择。

  • 回溯算法的基本思想和模板
  • 组合问题的求解
  • 排列问题的求解
  • 子集问题的求解
  • 棋盘问题(N皇后、数独等)

学习路径

建议按照以下顺序学习各个数据结构:

  1. 数组 - 最基础的数据结构,掌握双指针、二分查找等基本技巧
  2. 链表 - 理解指针操作和链式存储的特点
  3. 哈希表 - 学习高效的查找和统计方法
  4. 字符串 - 结合前面的知识,解决字符串处理问题
  5. 栈与队列 - 掌握这两种重要的线性数据结构
  6. 二叉树 - 树形结构的基础,理解递归思想
  7. 回溯算法 - 解决组合、排列等问题的重要算法思想
  8. 贪心算法 - 局部最优解决策(即将更新)
  9. 动态规划 - 复杂问题的最优子结构(即将更新)

如果你也在刷 Leetcode 或学习数据结构算法,欢迎一起交流、补充和完善这个系列!💪