Content
10 Lessons • 0 Quizzes • 0 Challenges
简介
- 1
本课程适合谁
- 2
学习成果
算法范式
- 1
暴力解法
- 2
贪心算法
- 3
分治法
- 4
动态规划
复杂度度量简介
- 1
比较算法
- 2
示例:测量单循环算法的时间复杂度
- 3
示例:包含嵌套循环的算法的时间复杂度
- 4
渐近分析与大O表示法简介
- 5
其他常见的渐近符号及其为何大O符号占主导地位
- 6
实用公式
- 7
常见的时间复杂度情况
- 8
挑战:嵌套循环加法的时间复杂度(Big O)
- 9
解决方案:嵌套循环加法的时间复杂度(大O表示法)
- 10
挑战:包含减法的嵌套循环的 Big (O) 复杂度
- 11
解决方案:嵌套循环中包含减法操作的时间复杂度分析
- 12
挑战:包含乘法的嵌套循环的时间复杂度(Big O)
- 13
解决方案:嵌套循环乘法操作的时间复杂度(大O表示)
- 14
挑战:嵌套循环与乘法(基础)
- 15
解决方案:嵌套循环与乘法(基础版)
- 16
挑战:嵌套循环与乘法(中级)
- 17
解决方案:嵌套循环与乘法(中级)
- 18
挑战:嵌套循环与乘法(高级)
- 19
解决方案:嵌套循环与乘法(进阶)
- 20
挑战:嵌套循环与乘法(专业版)
- 21
解决方案:嵌套循环与乘法(专业版)
- 22
复杂度测验:检验你对复杂度的理解
排序与搜索
- 1
选择排序、冒泡排序和插入排序
- 2
归并排序
- 3
快速排序
- 4
排序算法概述
- 5
搜索算法
- 6
挑战:找出两个相加等于目标值 s 的数
- 7
解决方案:找出两个相加等于目标值 "s" 的数
- 8
挑战:在旋转数组中搜索
- 9
解决方案:在旋转数组中搜索
- 10
挑战:分组字母异位词
- 11
解决方案:分组字母异位词
- 12
挑战:寻找两个有序数组的中位数
- 13
解决方案:寻找两个有序数组的中位数
- 14
挑战:在数组中查找重复项
- 15
解决方案:在数组中查找重复项
- 16
挑战:在有序矩阵中搜索
- 17
解决方案:在有序矩阵中搜索
- 18
挑战:统计元素出现次数
- 19
解决方案:统计元素出现次数
- 20
挑战:搜索插入位置
- 21
解决方案:搜索插入位置
- 22
挑战:稀疏搜索
- 23
解决方案:稀疏搜索
- 24
挑战:荷兰国旗问题
- 25
解决方案:荷兰国旗问题
- 26
排序与搜索测验
图算法
- 1
图算法简介与实现
- 2
挑战:实现广度优先图遍历
- 3
解决方案:广度优先图遍历
- 4
挑战:实现深度优先图遍历
- 5
解决方案:深度优先图遍历
- 6
挑战:计算给定图中某一层的节点数量
- 7
解决方案:计算给定图层级中的节点数量
- 8
挑战:打印图的转置
- 9
解决方案:打印图的转置
- 10
挑战:打印两个节点之间的所有路径
- 11
解决方案:打印两个节点之间的所有路径
- 12
挑战:检查图是否为强连通图
- 13
解决方案:判断一个图是否为强连通图
- 14
挑战:打印图中的所有连通分量
- 15
解决方案:打印图的所有连通分量
- 16
挑战:检查删除一条边是否会使图产生多个连通分量
- 17
解决方案:检查删除指定边是否会使图产生多个连通分量
- 18
挑战:判断给定图是否为二分图
- 19
解决方案:检查给定图是否为二分图
- 20
挑战:图的拓扑排序
- 21
解决方案:图的拓扑排序
- 22
图算法测验
贪心算法
- 1
活动安排问题
- 2
挑战:计算金额
- 3
解决方案回顾:计算金额
- 4
挑战:以最小成本连接 n 根管道
- 5
解决方案:以最小成本连接 n 根管道
- 6
挑战:找出埃及分数
- 7
解决方案:寻找埃及分数
- 8
挑战:求火车站所需的最少站台数量
- 9
解决方案:求火车站所需的最少站台数量
- 10
挑战:帮助警察抓住窃贼
- 11
解决方案:帮助警察抓住小偷
- 12
挑战:分数背包问题
- 13
解决方案:分数背包问题
- 14
挑战:给定位数和各位数字之和的情况下,求最大的数
- 15
解决方案:给定位数和数位之和的最大数字
- 16
挑战:图着色
- 17
解决方案:图着色
- 18
挑战:找出给定图的最小生成树
- 19
解决方案:寻找最小生成树 —— 克鲁斯卡尔算法
- 20
解决方案:寻找最小生成树 —— 普里姆算法
- 21
挑战:找出每个节点到源点的最短距离
- 22
解决方案:每个节点到源点的最短距离
- 23
贪心算法测验
动态规划
- 1
计算斐波那契数
- 2
用斐波那契数列介绍动态规划
- 3
记忆化斐波那契数列
- 4
计算斐波那契数列
- 5
挑战:0/1 背包问题
- 6
解决方案:0/1 背包问题
- 7
挑战:楼梯问题
- 8
解决方案:楼梯问题
- 9
挑战:分割问题
- 10
解决方案:分割问题
- 11
挑战:最长公共子串
- 12
解决方案:最长公共子串
- 13
挑战:最短公共超序列
- 14
解决方案:最短公共超序列
- 15
挑战:最长回文子序列
- 16
解决方案:最长回文子序列
- 17
挑战:硬币找零问题
- 18
解决方案:硬币找零问题
- 19
挑战:鸡蛋掉落问题
- 20
解决方案:鸡蛋掉落问题
- 21
挑战:字符串交错
- 22
解决方案:字符串交错
- 23
挑战:编辑距离问题
- 24
解决方案:编辑距离问题
- 25
动态规划测验
分治法
- 1
分治算法简介:二分查找
- 2
杨辉三角
- 3
挑战:欧几里得算法
- 4
解决方案:欧几里得算法
- 5
挑战:峰值元素
- 6
解决方案:峰值元素
- 7
挑战:最大子数组和
- 8
解决方案:最大子数组和
- 9
挑战:合并多个已排序的数组
- 10
解决方案:合并多个有序数组
- 11
挑战:用最少的步数收集硬币
- 12
解决方案:最少步数收集硬币
- 13
挑战:寻找最接近的数字
- 14
解决方案:寻找最接近的数字
- 15
挑战:最接近的点对
- 16
解决方案:最接近的点对
- 17
挑战:已排序数组中的缺失数字
- 18
解决方案:有序数组中的缺失数字
- 19
挑战:对单链表进行二分查找
- 20
解决方案:对单链表进行二分查找
- 21
挑战:打乱整数
- 22
解决方案:打乱整数
- 23
关于分治算法的测验
附录:辅助源代码
- 1
STL 类
- 2
链表辅助数据结构
- 3
数组函数
- 4
图的辅助数据结构
结论
- 1
概览
- 2
接下来该去哪里
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User