数据结构与算法系列笔记(代码随想录精华)
👋 欢迎来到数据结构与算法系列!
本系列主要整理自"代码随想录"与 Leetcode 经典题解,结合个人理解与实战经验,适合算法初学者和进阶者查阅。内容涵盖数组、链表等核心数据结构与常见算法题型,力求让每一篇都通俗易懂、实用有体系。
为什么要做这个系列?
- 记录自己在代码随想录算法训练营的刷题经历。
- 通过做系统化笔记,方便自己复习,也能帮助更多同学高效刷题。
- 希望把零散的算法知识串成体系,降低入门门槛。
数据结构分类
按照不同的数据结构类型,我将笔记分为以下几个专题:
📚 数组专题
数组是最基础的数据结构之一,也是算法题中最常见的题型。
- 二分查找
- 双指针技巧
- 滑动窗口
- 矩阵操作
🔗 链表专题
链表是一种常见的线性数据结构,由节点组成,每个节点包含数据和指向下一个节点的指针。
- 链表的基本操作
- 虚拟头节点的使用
- 链表反转
- 快慢指针技巧
🔍 哈希表专题
哈希表是一种高效的数据结构,支持快速的插入、删除和查找操作。
- 计数与查找
- 去重操作
- 数组作为简易哈希表
- 多重哈希表应用
📝 字符串专题
字符串是由字符组成的序列,是编程中最常见的数据类型之一。
- 字符串的基本操作
- 双指针在字符串中的应用
- 字符串匹配算法
📚 栈与队列专题
栈和队列是两种重要的线性数据结构,具有特殊的插入和删除规则。
- 栈的基本操作(后进先出)
- 队列的基本操作(先进先出)
- 栈与队列的相互实现
- 单调栈与单调队列
- 优先队列(堆)的应用
🌳 二叉树专题
二叉树是一种重要的非线性数据结构,每个节点最多有两个子节点。
- 二叉树的基本概念和性质
- 二叉树的遍历方法(前序、中序、后序、层序)
- 二叉搜索树的特性和操作
- 二叉树的构造与修改
- 二叉树的路径和深度问题
🔄 回溯算法专题
回溯算法是一种通过试错来寻找问题解的算法,当发现当前选择不能得到有效解时,就回退并尝试其他选择。
- 回溯算法的基本思想和模板
- 组合问题的求解
- 排列问题的求解
- 子集问题的求解
- 棋盘问题(N皇后、数独等)
学习路径
建议按照以下顺序学习各个数据结构:
- 数组 - 最基础的数据结构,掌握双指针、二分查找等基本技巧
- 链表 - 理解指针操作和链式存储的特点
- 哈希表 - 学习高效的查找和统计方法
- 字符串 - 结合前面的知识,解决字符串处理问题
- 栈与队列 - 掌握这两种重要的线性数据结构
- 二叉树 - 树形结构的基础,理解递归思想
- 回溯算法 - 解决组合、排列等问题的重要算法思想
- 贪心算法 - 局部最优解决策(即将更新)
- 动态规划 - 复杂问题的最优子结构(即将更新)
如果你也在刷 Leetcode 或学习数据结构算法,欢迎一起交流、补充和完善这个系列!💪