91天算法计划是一项结构化的学习计划,旨在通过为期91天的持续练习帮助参与者掌握编码算法。与承诺快速掌握的短期计划不同,该计划基于算法熟练度需要知识和实践的稳定积累的原则。通过提供全面的学习路径并强制执行每日签到,参与者可以系统地提高他们的算法技能和解决问题的能力。
有关计划中每日挑战的信息,请参阅每日问题系统。
来源: README.md39-47
91天算法计划的创建是为了应对算法学习的短期计划的局限性。其核心理念是:
该计划的口号概括了这一理念:“坚持下去,就会迎来豁然开朗的一天。”
来源: README.md39-45
91天算法计划分为“赛季”或“周期”,每个周期为91天。已进行多个赛季,每个赛季都根据参与者的反馈对材料和方法进行了改进。
来源: README.md39-47 SUMMARY.md30-35
该计划涵盖了广泛的算法主题,并以系统化的方式进行组织,逐步建立知识。核心主题包括:
每个主题都包括详细的讲义、示例问题和实现技术。该计划特别强调模式识别,以便参与者能够识别适合不同问题类型的算法或数据结构。
来源: README.md128-156 thinkings/README.md13-35 SUMMARY.md5-28 SUMMARY.md31-33
该计划提供丰富的学习材料以支持参与者的进步。
| 材料类型 | 描述 | 目的 |
|---|---|---|
| 讲义 | 对算法概念的全面解释 | 构建理论基础 |
| 问题集 | 按难度和算法类型分类 | 通过实践应用概念 |
| 解决方案指南 | 对解决方案方法的详细解释 | 学习解决问题的策略 |
| 视频会议 | 针对复杂主题的互动会话 | 澄清概念并回答问题 |
| 代码模板 | 常见算法的可重用模式 | 加速实现 |
来源: README.md50-51 SUMMARY.md31-34
该计划通过日常挑战的练习,教授系统性的算法问题解决方法。
这种方法通过计划的每日练习结构得到加强,在练习中参与者:
来源: README.md39-47 templates/problems/1014.best-sightseeing-pair.md1-64
91天算法计划中的问题经过精心分类,以确保参与者接触到各种挑战。
| 类别 | 描述 | 来自仓库的示例 |
|---|---|---|
| 简单题 | 基础算法概念,通常通过直接实现解决。 | 两数之和、有效的括号、反转链表 |
| 中等题 | 更复杂的问题,需要更深入的算法知识。 | LRU 缓存、二叉树遍历、动态规划模式 |
| 难题 | 结合多种技术的进阶问题。 | 两个排序数组的中位数、单词搜索 II、LFU 缓存 |
| 公司特定 | 特定科技公司经常询问的问题。 | 在问题描述中注明。 |
| 专题特定 | 专注于特定算法技术的问题。 | 二分查找、动态规划、图算法 |
问题来自仓库的大量收藏,其中包括:
来源: README.md186-191 collections/easy.md1-50 collections/medium.md1-135 collections/hard.md1-65
参与91天算法计划包括:
该计划通过其签到机制强制执行高强度练习,这有助于参与者在整个91天期间保持一致性。
来源: README.md39-47 README.md47
该计划提供了各种资源来支持参与者。
该计划强调了社区方面,鼓励参与者分享他们的方法并相互学习。
来源: README.md47-51 SUMMARY.md30-35
91天算法计划提供了一种结构化的、全面的方法,通过持续练习和系统学习来掌握算法。通过涵盖从基础数据结构到高级算法技术的广泛主题,并通过其签到系统强制执行每日练习,该计划帮助参与者建立强大的算法思维技能,这些技能对于技术面试和现实世界的问题解决非常有价值。
该计划的成功建立在其对算法精通并非来自死记硬背或快速修复,而是来自长期的持续练习的认识之上——强调只要坚持不懈,最终会取得显著的成长。