很多人对算法的第一反应是「刷题」,但真到用的时候,卡住的地方往往不是题不会做,而是不知道手上这个问题该归到哪一类、该上哪种结构、复杂度撑不撑得住。这门课的价值不在于再给你一堆题,而在于把 Python 里那套常用的算法骨架一条条拆开讲清楚——它更像一份可以对照着补缺的清单,你缺哪块就翻哪块。
先搞清楚自己缺的是哪一层
算法学习的缺口大致分三层,混在一起就容易学得糊。第一层是工具层:Python 里列表、字典、集合、堆、队列各自的时间开销是什么,什么时候该用 deque 而不是 list,排序的稳定性对你后面去重有没有影响。第二层是方法层:看到「最短步数」该想到 BFS,看到「所有方案」该想到搜索或组合计数,看到「区间里反复查询」该想到前缀和或差分。第三层是判断层:同一道题两种写法都能过样例,但一个在数据量放大后超时,你要能提前算出这一点。
这门课按复杂度分析、数据结构、排序、搜索、组合数学、字符串这样的顺序推进,本质上就是按这三层来的。如果你已经在刷题但总是「过了样例就交、交了才发现超时」,缺的通常是第一层和第三层;如果你连题目属于哪一类都判断不出来,缺的是第二层。
BFS 这块值得单独拿出来说
课程里广度优先搜索的分量不轻,从入门用法一直讲到双向广搜和判重,这个安排是有道理的。BFS 是很多人第一个「以为自己会了」的算法:模板背得下来,但一到实际问题就出岔子。常见坑集中在三处——状态怎么表示才能被放进队列、判重放在入队时还是出队时、以及什么时候该用双向广搜去压搜索空间。
判重这一节尤其值得反复看。很多超时和死循环的根源不是搜索逻辑写错了,而是同一状态被反复入队,或者判重用的键设计得不够精确,把不同状态误判成同一个。双向广搜则是另一个层次的思路:从起点和终点同时展开,把指数级的搜索空间砍下来。这两块能自己动手复现一遍,BFS 才算真的过关。
复杂度分析和数学部分别跳过
复杂度分析放在靠前的位置,它不产出代码,但决定了你后面所有选择的依据。学的时候建议配合具体题目算:这段循环嵌套实际跑多少次、递归的深度和分支数大致是多少、用字典换掉线性查找能省下多少。算过几次之后,你对「这题能不能暴力」会有直觉。
组合数学和简单字符串这两块,是容易被当成「背公式」而草草带过的。组合计数真正难的地方是建模:把「有多少种走法」「有多少种选取方案」翻译成加法原理还是乘法原理,考虑不考虑顺序,要不要去重。字符串部分则要把常见的匹配、统计、构造类操作练熟,Python 的切片和内置方法在这里能省很多事,但也容易让人忽略底层在做什么。
配套怎么练
- 每看完一个算法模块,先不看讲解自己写一遍模板,再拿两道题验证。写不出来的地方就是缺口所在。
- 针对 BFS,专门找几道需要设计状态的题,重点练判重的键怎么定,别只练走迷宫。
- 复杂度分析不要只当理论,每道题提交前先估一下数据量对应的运算次数,和实际耗时对一对。
- 组合数学的题做完后,把思路用一两句话写下来:是分类还是分步、有没有重复计数。写不清楚说明还没真懂。
- 字符串部分可以刻意用两种写法做同一道题,一种用内置方法,一种手写逻辑,对比差异。
看完应该能回答这些问题
- 给定一个搜索类问题,你能判断该用 BFS 还是 DFS,并说出理由吗?
- BFS 中判重如果放在出队时做,会带来什么后果?
- 双向广搜在什么条件下才有明显收益,什么情况下反而不划算?
- 面对一道组合计数题,你能说清它是分类相加还是分步相乘吗?
- 拿到一道题,你能在动手前大致估出暴力解法的运算量吗?
如果这些问题里有几个你答不上来,那对应的章节就是你现在该补的位置。不用从头顺着看,按缺口挑着学,效率更高。
蓝桥云课- 罗勇军算法精讲课(Python版)
Python算法核心精讲
编辑点评
系统讲解Python算法,涵盖数据结构、排序、搜索、组合数学等,适合算法入门及进阶。
⭐ 编辑推荐
罗勇军老师倾力打造,深入浅出解析Python算法核心,助力算法能力提升。
课程亮点
课程目录
📁 15.第十五章:简单字符串
15.1.Python字符串处理.mp4 [72.2 MB]
15.2.第十七次学长带练.mp4 [486.4 MB]
📁 09.第九章:广度优先搜索 - BFS
9.3.BFS-判重.mp4 [60.4 MB]
9.5.第9次学长带练.mp4 [175.6 MB]
9.4.双向广搜.mp4 [40.6 MB]
9.1.BFS的入门与应用1.mp4 [62.8 MB]
9.2.BFS的入门与应用2.mp4 [47.4 MB]
📁 04.第四章:算法复杂度分析
4.2.算法的定义与评估【公重号:CunWorkNotes】.mp4 [66.9 MB]
4.1程序运行的资源计算.mp4 [29.5 MB]
📁 01.第一章课前准备
2.蓝桥杯大赛介绍2.mp4 [40.6 MB]
1.蓝桥杯大赛介绍1.mp4 [55.5 MB]
3.名师见面会.mp4 [106.7 MB]
📁 03.第三章:基础数据结构
3.5.【名师精讲】栈的实现与应用【公重号:CunWorkNotes】.mp4 [47.2 MB]
3.2.【名师精讲】多维数组.mp4 [35.2 MB]
3.8.第4次学长带练.mp4 [170.7 MB]
3.1.【名师精讲】一维数组.mp4 [47.6 MB]
3.4.【名师精讲】队列的实现与应用.mp4 [76.5 MB]
3.7.二叉树的实现与应用2.mp4 [54.3 MB]
3.6.二叉树的实现与应用1.mp4 [49.6 MB]
3.3.【名师精讲】链表的实现与应用.mp4 [73.4 MB]
📁 13.第十三章:组合数学
13.2.组合数学2【更多精选‖公众号:CunWorknotes】 .mp4 [59.3 MB]
13.1.组合数学1.mp4 [52.4 MB]
📁 12.第十二章:简单数论
12.3【带练回放】第14次学长带练【持续更新‖免费提供:CunworknoteS】.mp4 [192.0 MB]
12.1【名师精讲】GCDLCM-1.mp4 [51.4 MB]
12.6【名师精讲】矩阵快速幂【资源精选‖更多关注:CunworkNotes】.mp4 [87.3 MB]
12.5【名师精讲】快速幂2.mp4 [14.7 MB]
12.9素数2.mp4 [42.9 MB]
12.2【名师精讲】GCDLCM-2.mp4 [66.7 MB]
12.7【带练回放】第15次学长带练.mp4 [249.9 MB]
12.8素数1.mp4 [50.7 MB]
12.13高斯消元2.mp4 [34.4 MB]
12.12高斯消元1.mp4 [57.6 MB]
12.14第16次学长带练.mp4 [402.7 MB]
12.4【名师精讲】快速幂1.mp4 [27.1 MB]
12.10.丢番图方程.mp4 [48.5 MB]
12.11同余和逆.mp4 [81.7 MB]
📁 08.第八章:深度优先搜索 - DFS
8.8.DFS剪枝优化2.mp4 [34.4 MB]
8.5.DFS的深入应用1.mp4 [57.5 MB]
8.4.DFS的深入应用.mp4 [55.6 MB]
8.6.DFS的深入应用2.mp4 [43.9 MB]
8.7.DFS剪枝优化1.mp4 [51.0 MB]
8.9.第8次学长带练.mp4 [166.4 MB]
8.2.DFS初入门2.mp4 [68.3 MB]
8.3.DFS与排列组合.mp4 [55.4 MB]
8.1.DFS初入门1.mp4 [29.2 MB]
📁 05.第五章:排序与排列组合
5.1Python排序函数的运用.mp4 [57.8 MB]
5.5.第5次学长带练【资源精选‖更多关注:CunworkNotes】.mp4 [182.7 MB]
5.4.经典例题解析.mp4 [49.1 MB]
5.2.结构体排序.mp4 [61.4 MB]
5.3.排列组合相关函数的编写与运用.mp4 [78.8 MB]
📁 02.第二章 编程基础通关
2.11.第三次学长带练.mp4 [155.0 MB]
2.2Python语言快速入门2.mp4 [67.3 MB]
2.9.Python杂题1.mp4 [54.9 MB]
2.3Python语言快速入门3.mp4 [48.8 MB]
2.5第1次学长带练.mp4 [149.6 MB]
2.1Python语言快速入门1.mp4 [82.5 MB]
2.4Python语言快速入门4.mp4 [43.1 MB]
2.10.Python杂题2.mp4 [45.5 MB]
2.7手算题2.mp4 [51.4 MB]
2.8第二次学长代练.mp4 [148.2 MB]
2.6手算题1.mp4 [37.3 MB]
📁 18.第十八章:国赛精选真题解析
18.1.第十三届国赛真题Python研究生A组.mp4 [64.7 MB]
18.8.第20次学长带练.mp4 [496.5 MB]
18.7.第十二届国赛真题Python组2.mp4 [43.3 MB]
18.2.第十三届国赛真题Python研究生A组2.mp4 [58.2 MB]
18.5.第十二届国赛真题Python组2.mp4 [73.2 MB]
18.3.第十三届国赛真题PythonB和C组.mp4 [53.1 MB]
18.4.第十二届国赛真题Python组1.mp4 [34.0 MB]
18.6.第十一届国赛真题Python组1.mp4 [58.5 MB]
📁 11.第十一章:动态规划从入门到精通
11.8【名师精讲】状态压缩DP1.mp4 [49.9 MB]
11.10【名师精讲】树形DP【不易整理‖请关注:CunWorkNoteS】.mp4 [104.8 MB]
11.5【名师精讲】线性DP1.mp4 [57.8 MB]
11.11【名师精讲】数位统计DP.mp4 [48.5 MB]
11.1【名师精讲】DP初入门1.mp4 [81.8 MB]
11.9【名师精讲】状态压缩DP2.mp4 [69.9 MB]
11.2【名师精讲】DP初入门2.mp4 [61.0 MB]
11.12【带练回放】第13次学长带练.mp4 [201.5 MB]
11.3【名师精讲】背包问题1.mp4 [46.0 MB]
11.7【带练回放】第12次学长带练.mp4 [190.1 MB]
11.4【名师精讲】背包问题2.mp4 [53.3 MB]
11.6【名师精讲】线性DP2.mp4 [49.9 MB]
📁 10.第十章:高级数据结构
10.3.第10次学长带练.mp4 [260.2 MB]
10.4.树状数组-原理和区间和【持续更新‖免费提供:CunworknoteS】.mp4 [45.9 MB]
10.5.树状数组-修改和查询.mp4 [46.1 MB]
10.6.树状数组-逆序对.mp4 [46.0 MB]
10.10.线段树的懒标记.mp4 [38.8 MB]
10.8.线段树的原理.mp4 [48.4 MB]
10.12.第11次学长带练.mp4 [217.6 MB]
10.7.树状数组-离散化.mp4 [52.9 MB]
10.1.并查集的入门与应用1.mp4 [47.0 MB]
10.9.线段树的应用1.mp4 [77.2 MB]
10.2.并查集的入门与应用2.mp4 [69.4 MB]
10.11.线段树的应用2.mp4 [48.3 MB]
📁 17.第十七章:图论算法
17.6.Dijkstra的入门与应用1.mp4 [46.2 MB]
17.5.Floyd的入门与应用3.mp4 [25.0 MB]
17.4.Floyd的入门与应用2.mp4 [14.3 MB]
17.8.Bellman-Ford算法.mp4 [43.8 MB]
17.9.SPFA算法.mp4 [45.5 MB]
17.2.图论出入门2.mp4 [48.7 MB]
17.11.第19次学长带练.mp4 [489.5 MB]
17.3.Floyd的入门与应用1.mp4 [44.5 MB]
17.10.最小生成树-Kruskal和Prim.mp4 [61.1 MB]
17.1.图论出入门1.mp4 [60.5 MB]
17.7.Dijkstra的入门与应用2.mp4 [33.0 MB]
📁 06.第六章:二分法
6.3.第6次学长带练.mp4 [199.9 MB]
6.1.二分法的引入与分析.mp4 [57.0 MB]
6.2.整数二分与实数二分的应用.mp4 [78.4 MB]
📁 16.第十六章:字符串匹配算法-KMP
16.2.KMP的入门与应用2.mp4 [56.9 MB]
16.1.KMP的入门与应用1.mp4 [44.4 MB]
📁 14.第十四章:计算几何
14.2.计算几何2.mp4 [53.8 MB]
14.1.计算几何1.mp4 [58.4 MB]
📁 07.第七章:前缀和与贪心
7.2.二维前缀和的应用.mp4 [59.2 MB]
7.1.前缀和与差分数组的应用.mp4 [69.6 MB]
7.3.第7次学长带练.mp4 [191.7 MB]适合人群
- Python初学者
- 算法爱好者
- 编程进阶者
学习收获
祝您学习愉快!
学有所成,前程似锦!






