算法训练地图   /   THE LEARNING ATLAS本地课程 · 离线可用
THINK. TRACE. BUILD.

把思路练成
自己的代码。

从基础心智模型到题目迁移,在理解、推演和独立实现中,逐步建立你的算法直觉。

从第一章基础开始
09个主题章节
109个训练单元
01条循序渐进的路径
先基础,再主练,最后迁移
课程目录109 UNITS
CHAPTER 01

数组与哈希

从数值表示出发,练习用集合、映射与频次记录状态。

13 个单元
CHAPTER 02

双指针与滑动窗口

用指针的移动与窗口的伸缩,组织有序的搜索过程。

8 个单元
CHAPTER 03

栈与队列

理解待处理状态,掌握栈、队列与单调结构。

14 个单元
CHAPTER 04

链表

看清节点之间的连接,练习指针操作与局部改写。

14 个单元
CHAPTER 05

二叉树与递归

从递归的返回值出发,建立树上的分解与合并思路。

9 个单元
CHAPTER 06

二分、堆与优先队列

缩小搜索空间,用堆维护顺序与动态候选集合。

12 个单元
CHAPTER 07

回溯与搜索

在选择、探索与撤销中,构建完整的状态空间。

12 个单元
CHAPTER 08

图与并查集

从遍历到连通性,理解图上的关系与依赖。

14 个单元
CHAPTER 09

动态规划

定义状态、找出依赖,把重复计算变成有序递推。

13 个单元
旧版与补充练习 32 个页面 · 109 个训练单元以外的资料

主课程之外的历史版本和补充页面,也可以从这里打开。顶部搜索同时覆盖这些资料。

旧版课程Unit 00|什么是哈希|Python算法基础认知实验01数组与哈希/old/00_hashing_fundamentals_unit00.html旧版课程LeetCode 217|存在重复元素|Python认知实验01数组与哈希/old/01_leetcode_217_hash_set_v3.html旧版课程LeetCode 1|两数之和|Python认知实验01数组与哈希/old/02_leetcode_001_two_sum.html旧版课程LeetCode 242|有效的字母异位词|Python认知实验01数组与哈希/old/03_leetcode_242_valid_anagram_unit03_manifest.html旧版课程LeetCode 49|字母异位词分组|Python认知实验01数组与哈希/old/04_leetcode_049_group_anagrams_unit04.html旧版课程LeetCode 347|前 K 个高频元素|Python认知实验01数组与哈希/old/05_leetcode_347_top_k_frequent_unit05.html补充练习LeetCode 0 · 二分查找认知实验室compiler/direct-html-workflow/outputs/20260810-214331/direct_000_leetcode-problem.html补充练习LeetCode 0 · 二分查找 · 认知实验室compiler/direct-html-workflow/outputs/20260810-223815/direct_000_leetcode-problem.html补充练习二分查找时间复杂度分析 · 认知实验室compiler/direct-html-workflow/outputs/20260811-002607/direct_general_binary-search-time-complexity-analysis.html补充练习两数之和 II - 输入有序数组 | Cognitive Labcompiler/dist/167_two_sum_ii_cognitive_lab.html补充练习两数之和 II - 输入有序数组 | Cognitive Labcompiler/dist/167_two_sum_ii_input_array_is_sorted_cognitive_lab.html补充练习长度最小的子数组 | Cognitive Labcompiler/dist/209_minimum_size_subarray_sum_cognitive_lab.html补充练习LeetCode 001 · 两数之和 · 认知实验室compiler/dist/direct_209_deepseek_max.html补充练习LeetCode 209 · 长度最小的子数组 · 认知实验室compiler/dist/direct_209_deepseek_max_v2.html补充练习LeetCode 209 · 长度最小的子数组 · 认知实验室compiler/dist/direct_209_minimum-size-subarray-sum.html补充练习爬楼梯:动态规划最小示例 | Cognitive Labcompiler/dist/example_climbing_stairs_cognitive_lab.html补充练习两数之和 II:对撞双指针 | Cognitive Labcompiler/dist/leetcode_167_two_sum_ii_two_pointers_cognitive_lab.html补充练习爬楼梯:动态规划最小示例 | Cognitive Labcompiler/dist_test_generic/example_climbing_stairs_cognitive_lab.html补充练习双指针前置心智模型|Unit 00compiler/example/00_two_pointers_fundamentals_unit00_redesigned.html补充练习LeetCode 125|验证回文串|双指针 Unit 01compiler/example/01_leetcode_125_valid_palindrome_unit01.html补充练习LeetCode 283|移动零|双指针 Unit 02compiler/example/02_leetcode_283_move_zeroes_unit02.html补充练习LeetCode 283|移动零|双指针 Unit 02compiler/example/02_leetcode_283_move_zeroes_unit02_improved.html补充练习LeetCode 167|两数之和 II|双指针 Unit 03compiler/example/03_leetcode_167_two_sum_ii_unit03.html补充练习LeetCode 167|两数之和 II|双指针 Unit 03compiler/example/03_leetcode_167_two_sum_ii_unit03_improved_v2.html补充练习LeetCode 15|三数之和|双指针 Unit 04compiler/example/04_leetcode_015_three_sum_unit04.html补充练习LeetCode 15|三数之和|双指针 Unit 04compiler/example/04_leetcode_015_three_sum_unit04_improved_v2.html补充练习LeetCode 3|无重复字符的最长子串|双指针 Unit 05compiler/example/05_leetcode_003_longest_substring_unit05.html补充练习LeetCode 3|无重复字符的最长子串|双指针 Unit 05compiler/example/05_leetcode_003_longest_substring_unit05_improved.html补充练习LeetCode 438|找到字符串中所有字母异位词|滑动窗口 Unit 06compiler/example/06_leetcode_438_find_anagrams_unit06.html补充练习LeetCode 438|找到字符串中所有字母异位词|滑动窗口 Unit 06compiler/example/06_leetcode_438_find_anagrams_unit06_improved.html补充练习LeetCode 209|长度最小的子数组|滑动窗口 Unit 07compiler/example/07_leetcode_209_minimum_size_subarray_sum_unit07.html补充练习LeetCode 209|长度最小的子数组|滑动窗口 Unit 07compiler/example/07_leetcode_209_minimum_size_subarray_sum_unit07_improved.html