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