人人都能学编程
English 开始学习
核心 · 算法 免费阅读

数据结构与算法教程

面试题背后的套路:复杂度、双指针、哈希表、栈、二分、递归、图和动态规划,每个都带速度测试。

8 课约 16 小时 建议先学:Python 从零开始

学完可以接着学:系统设计

边学边练

互动课是同样的内容,旁边多了一个编辑器:每个例子都能运行,小测验当场判对错,练习题提交马上判题。免费开始,不用注册。

开始互动课
1

度量与扫描

数步数,一遍解决列表问题。
1 大 O:数步数怎么判断代码在一百万条数据时还快不快?2 双指针与滑动窗口怎么只走一遍就解决列表问题?
2

快速查找

哈希表、集合、栈和队列。
3 哈希表与集合怎么做到瞬间找到,而不是一个个搜?4 栈与队列什么时候需要栈,什么时候需要队列?
3

分而治之

二分查找、递归与归并排序。
5 二分查找怎么在 20 步之内查完一百万个有序元素?6 递归与归并排序函数怎么能通过调用自己来解决问题?
4

图与动态规划

遍历图,复用子问题的答案。
7 图:BFS 与 DFS怎么探索一张由连接构成的网络?8 动态规划怎么避免一遍又一遍地解同一个小问题?