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
解决方案:包含减法的嵌套循环的时间复杂度(大O表示)
- 12
挑战:包含乘法的嵌套循环的时间复杂度(Big O)
- 13
解决方案:包含乘法的嵌套循环的时间复杂度(大O表示法)
- 14
挑战:嵌套循环与乘法(基础)
- 15
解决方案:嵌套循环与乘法(基础版)
- 16
挑战:嵌套循环与乘法(中级)
- 17
解决方案:嵌套循环与乘法(中级)
- 18
挑战:嵌套循环与乘法(高级)
- 19
解决方案:嵌套循环与乘法(进阶)
- 20
挑战:嵌套循环与乘法(专业版)
- 21
解决方案:嵌套循环与乘法(专业版)
- 22
复杂度面试题
排序与搜索
- 1
选择排序、冒泡排序和插入排序
- 2
归并排序
- 3
快速排序
- 4
排序算法的时间复杂度(概述)
- 5
搜索算法
- 6
挑战:找出两个相加等于“n”的数
- 7
解决方案:找出两个相加等于 "n" 的数
- 8
挑战:在旋转数组中搜索
- 9
解决方案:在旋转数组中搜索
- 10
挑战:分组字母异位词
- 11
解决方案:分组字母异位词
- 12
挑战:寻找两个有序数组的中位数
- 13
解决方案:寻找两个有序数组的中位数
- 14
挑战:在数组中查找重复项
- 15
解决方案:在数组中查找重复项
- 16
挑战:在有序矩阵中搜索
- 17
解决方案:在有序矩阵中搜索
- 18
挑战:统计元素出现次数
- 19
解决方案:统计元素出现次数
- 20
挑战:搜索插入位置
- 21
解决方案:搜索插入位置
- 22
挑战:稀疏搜索
- 23
解决方案:稀疏搜索
- 24
挑战:荷兰国旗问题
- 25
解决方案:荷兰国旗问题
- 26
排序与搜索测验
动态规划
- 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
挑战:以最低成本连接 n 根管道
- 5
解决方案:以最小成本连接 'n' 根管道
- 6
挑战:找出埃及分数
- 7
解决方案:求埃及分数
- 8
挑战:火车站所需的最少站台数量
- 9
解决方案:火车站所需最少站台数量
- 10
挑战:帮助警察抓住窃贼
- 11
解决方案:协助警察抓住窃贼
- 12
挑战:分数背包问题
- 13
解决方案:分数背包问题
- 14
挑战:找出最大的数
- 15
解决方案:找出最大的数
- 16
挑战:图着色
- 17
解决方案:图着色
- 18
挑战:寻找最小生成树
- 19
解决方案:克鲁斯卡尔最小生成树
- 20
快速测验!
分治法
- 1
分治算法简介:二分查找
- 2
杨辉三角
- 3
挑战:欧几里得算法
- 4
解法回顾 1:欧几里得算法
- 5
挑战:峰值元素
- 6
解决方案:峰值元素
- 7
挑战:最大子数组和
- 8
解决方案:最大子数组和
- 9
挑战:已排序数组中的缺失数字
- 10
解决方案:有序数组中的缺失数字
- 11
挑战:寻找最接近的数字
- 12
解决方案:寻找最接近的数字
- 13
挑战:打乱整数
- 14
解决方案:打乱整数
- 15
挑战:用最少的步数收集硬币
- 16
解决方案:最少步数收集硬币
- 17
挑战:合并多个已排序的数组
- 18
解决方案:合并多个已排序的数组
- 19
挑战:查找一个数的下取整和上取整
- 20
解决方案:查找一个数的下取整和上取整
- 21
挑战:数组中的逆序对数量
- 22
解决方案:数组中的逆序对数量
- 23
关于分治算法的测验
图算法
- 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
PriorityQueue 类
- 4
HashMap 类
- 5
ArrayList 类
结论
- 1
总结
- 2
接下来该去哪里
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User