本书不仅仅只是一本算法题解书,更是一本算法与数据结构基础知识的讲解书。
- 超详细的 「算法与数据结构」 基础讲解教程,「LeetCode 800+ 道」 经典题目详细解析。
- 本项目易于理解,没有大跨度的思维跳跃,项目中使用大量图示、例子来帮助理解。
- 本项目先从基础的数据结构和算法开始讲解,再针对不同分类的数据结构和算法,进行具体题目的讲解分析。让读者可以通过「算法基础理论学习」和「编程实战学习」相结合的方式,彻底的掌握算法知识。
- 本项目从各大知名互联网公司面试算法题中整理汇总了 「LeetCode 200 道高频面试题」,帮助面试者更有针对性的准备面试。
本书内容及代码都放在 Github repo 中,欢迎在下方项目中 「Star ⭐️ 」 和 「Fork」,这是对我最大的鼓励和支持。
- Github 地址:https://github.com/itcharge/AlgoNote
- 拥有 Python 编程基础或其他编程语言基础的编程爱好者
- 对 LeetCode 刷题感兴趣或准备算法面试的面试人员
- 对算法感兴趣的计算机专业学生或程序员
- 想要提升编程思维和问题解决能力的开发者
本书采用算法与数据结构相结合的方法,把内容分为如下几个主要部分:
- 序言:介绍数据结构与算法的基础知识、算法复杂度、LeetCode 的入门和攻略,为后面的学习打好基础。
- 第 1 章 数组:讲解数组的基本概念、数组的基本操作。
- 第 2 章 链表:讲解链表的基本概念、操作和应用,包括单链表、双向链表、循环链表等。
- 第 3 章 堆栈、队列、哈希表:详细介绍堆栈、队列、哈希表这三种数据结构,包括它们的基本概念、实现方式、应用场景以及相关的经典算法题。
- 第 4 章 字符串:讲解字符串的基本操作、单字符串匹配算法、多字符串匹配算法,以及字符串相关的经典算法题。
- 第 5 章 树结构:介绍树的基本概念、二叉树、二叉搜索树、线段树、树状数组、并查集等数据结构。
- 第 6 章 图论:讲解图的基本概念、表示方法、遍历算法和经典应用。
- 第 7 章 基础算法:介绍基本的算法思想。包括枚举、递归、分治、回溯、贪心以及位运算。
- 第 8 章 动态规划:介绍动态规划的基础知识、各种动态规划题型的解法。
- 题目解析:讲解 LeetCode 上刷过的所有题目,可按照对应题号进行检索和学习。
- 本电子书的左侧为所有章节目录导航,可直接点击对应章节跳转阅读。
- 本电子书左上角有搜索栏,可以帮你迅速找到想看的章节和题解文章。
- 本电子书每页都接入了 giscus 评论系统,可在每页下方的评论框进行评论(需使用 GitHub 账号登录)。
- 建议按照章节顺序学习,循序渐进地掌握各个知识点。
- 每章末尾都配有练习题,建议及时完成以巩固所学知识。
我是一名 iOS / macOS 的开发程序员,研究生毕业于北航软件学院。曾在大学期间学习过算法知识,并参加过 3 年的 ACM 比赛, 但水平有限,未能取得理想成绩。但是这 3 年的 ACM 经历,给我最大的收获是锻炼了自己的逻辑思维和解决实际问题的能力,这种能力为我今后的工作、学习打下了坚实的基础。
我从 2021 年 03 月 30 日开始每日在 LeetCode 刷题,到 2022 年 06 月 08 日已经刷了 1000+ 道题目,并且完成了 800+ 道题解。努力向着 1000+、1500+、2000+ 道题解前进。
限于本人的水平和经验,书中一定不乏纰漏和谬误之处。恳切希望读者给予批评指正。这将有利于我改进和提高,以帮助更多的读者。如果您对本书有任何评论和建议,或者遇到问题需要帮助,可在每页评论区留言,或者致信作者邮箱 [email protected],我将不胜感激。
- 本书采用 知识署名—非商业性使用—禁止演绎(BY-NC-ND)4.0 协议国际许可协议 进行许可。
- 本书题解中的所有题目版权均归 LeetCode 和 力扣中国 所有。
在本书构思与写作阶段,很多朋友给我提出了有益的意见和建议。这些意见和建议令我受益匪浅。感谢在本书著作准备过程中,帮助过我的朋友,以及一起陪我刷题打卡的朋友,还有提供宝贵意见的读者。谢谢诸位。