C++17 个知识点
计数原理
3 个知识点加法原理、乘法原理
排列组合
3 个知识点排列、组合的概念及编程实现
杨辉三角形
2 个知识点杨辉三角形的概念与应用
倍增法
2 个知识点倍增法的概念及时间复杂度分析
图论进阶
4 个知识点最小生成树(Kruskal/Prim)、最短路径(Dijkstra/Floyd)
算法优化
3 个知识点时间和空间效率分析、数学知识辅助优化技巧
Python17 个知识点
计数原理
3 个知识点加法原理、乘法原理
排列组合
3 个知识点排列、组合的概念及编程实现
杨辉三角形
2 个知识点杨辉三角形的概念与应用
倍增法
2 个知识点倍增法的概念及时间复杂度分析
图论进阶
4 个知识点最小生成树(Kruskal/Prim)、最短路径(Dijkstra/Floyd)
困难困难困难困难
Python最小生成树 Kruskal 算法
把城市之间的道路想象成绳子,Kruskal算法像搭积木一样,每次选最短的绳子连接两个城市,同时避免形成环,最后用最少的绳子把所有城市连起来。
Python最小生成树 Prim 算法
从一个城市开始,像种树一样,每次选择离当前树最近的新城市加入,直到所有城市都被连起来,最终用最少的道路连通所有城市。
Python最短路径 Dijkstra 算法
从起点出发,像“贪吃蛇”一样每次去最近的新地点,并记下到达每个地点的最短距离,最终得到从起点到所有地点的最短路径。
Python最短路径 Floyd 算法
像“中间人”一样,逐一尝试每个城市作为中转站,看看是否能让任意两个城市之间的路程变得更短,最终得出所有城市对之间的最短距离。
算法优化
3 个知识点时间和空间效率分析、数学知识辅助优化技巧