不用摸索顺序,把精力留给理解。
选择适合自己的起点。路径把概念导览与完整交互课串起来,你随时可以切换,也可以按需跳转。
第一次来?跟着这一课走。
从「冒泡排序」开始,完整走一遍看例子、动手运行和自测。
- 01
先看一个小例子
打开冒泡排序,先手算 [3, 1, 2],再读第 01–03 节的问题、直接解法和推导。
- 02
用「下一步」看清变化
到第 04 节输入 3, 1, 2 并点击「应用」。逐步观察比较、交换和代码高亮,再试试倒序输入。
- 03
回答问题,再标记掌握
完成第 09 节自测,读完解析。能解释为什么正确、为什么是这个复杂度,再标记掌握。
学完以后:进入「算法课程」选下一课;刷题遇到不会归类的问题,用「模式识别」找思路。「算法地图」中的浅色节点是简短概念卡,绿色节点才是完整交互课。
进度自动保存在当前浏览器。换设备前,到「我的进度」导出文件,在另一台设备导入即可。
LeetCode 新手
建立你的第一套解题思路
零基础友好LeetCode 进阶
把 Medium 拆成你熟悉的问题
基础 → 进阶高级算法
进一步探索算法的边界
进阶挑战走向真实工程
LeetCode 之外的算法世界
工程应用LeetCode 新手
从数组和哈希表开始,学会识别模式,再走向树、图和动态规划。
数组Array
建议前置:基础编程
哈希表Hash Map
建议前置:数组
双指针Two Pointers
建议前置:哈希表
滑动窗口Sliding Window
建议前置:数组与字符串 · 集合 · 双指针
前缀和Prefix Sum
建议前置:滑动窗口
二分查找Binary Search
建议前置:数组 · 下标 · 有序性
栈Stack
建议前置:二分查找
链表Linked List
建议前置:栈
二叉树Binary Tree
建议前置:链表
深度优先搜索DFS
建议前置:栈 · 图的邻接表
广度优先搜索BFS
建议前置:队列 · 图的邻接表 · 集合
堆Heap
建议前置:数组 · 完全二叉树
回溯Backtracking
建议前置:堆
贪心思想Greedy
建议前置:回溯
DP 思想Dynamic Programming
建议前置:数组 · 循环 · 递归基础
LeetCode 进阶
从维护候选到维护图结构,掌握中等题中的核心优化套路。
单调栈Monotonic Stack
建议前置:栈 · 数组
单调队列Monotonic Queue
建议前置:单调栈
并查集Union Find
建议前置:数组 · 图的连通性
拓扑排序Topological Sort
建议前置:并查集
字典树Trie
建议前置:拓扑排序
DijkstraDijkstra
建议前置:图 · BFS · 贪心思想
区间 DPInterval DP
建议前置:Dijkstra
二分答案Binary Search on Answer
建议前置:区间 DP
高级算法
探索范围查询、字符串匹配、图优化和指数状态压缩。
线段树Segment Tree
建议前置:基础编程
树状数组Fenwick Tree
建议前置:线段树
KMPKnuth–Morris–Pratt
建议前置:树状数组
ManacherManacher
建议前置:KMP
最小生成树Minimum Spanning Tree
建议前置:Manacher
Bellman–FordBellman–Ford
建议前置:最小生成树
网络流概念Network Flow
建议前置:Bellman–Ford
状态压缩 DPBitmask DP
建议前置:网络流概念
走向真实工程
连接数值计算、信号处理、GPU 和操作系统,理解算法的工程价值。