Content
11 Lessons • 0 Quizzes • 0 Challenges
开始学习
- 1
谁应该学习这门课程,以及为什么?
时间复杂度
- 1
简介与渐近分析
- 2
大O符号、Ω符号和Θ符号
- 3
算法复杂度分析
- 4
时间复杂度顺序
- 5
推导算法的运行时间函数
- 6
与时间复杂度相关的示例
- 7
主定理
- 8
主定理示例
- 9
测验
数组
- 1
挑战:数组求和
- 2
解决方案回顾:数组求和
- 3
挑战:顺序查找
- 4
解法回顾:顺序查找
- 5
挑战:二分查找
- 6
解法回顾:二分查找
- 7
挑战:寻找最大和子数组
- 8
解决方案回顾:寻找最大和子数组
- 9
挑战:将数组向左旋转 k 个位置
- 10
解决方案回顾:将数组向左旋转 k 个位置
- 11
挑战:数组波形
- 12
解决方案回顾:数组波形
- 13
挑战:索引数组
- 14
解答回顾:索引数组
- 15
挑战:从 1 到 n 的排序
- 16
解决方案回顾:从 1 到 n 的排序
- 17
挑战:找出最小的缺失正整数
- 18
解决方案回顾:最小的缺失正整数
- 19
挑战:将数组重排为最大-最小形式
- 20
解答回顾:将数组重排为最大-最小形式
- 21
挑战:数组索引最大差值
- 22
解决方案回顾:数组索引最大差值
- 23
测验:数组
递归函数
- 1
递归函数
- 2
挑战:阶乘
- 3
解法回顾:阶乘
- 4
挑战:打印十六进制整数
- 5
解决方案回顾:打印十六进制整数
- 6
挑战:最大公约数
- 7
解法回顾:最大公约数
- 8
挑战:斐波那契数列
- 9
解决方案回顾:斐波那契数列
- 10
挑战:整数列表的所有排列
- 11
解法回顾:整数列表的所有排列
- 12
挑战:汉诺塔
- 13
解法回顾:汉诺塔
- 14
测验:递归
解决算法设计问题的方法
- 1
介绍与约束
- 2
想法生成
- 3
复杂度、编码与测试
- 4
示例与总结
Go语言中的数据结构
- 1
抽象数据类型
- 2
Go 集合框架
- 3
栈
- 4
队列
- 5
树
- 6
优先队列 / 堆
- 7
哈希表
- 8
字典
- 9
集合与计数器
- 10
符号表
- 11
图
排序
- 1
简介
- 2
排序算法
- 3
冒泡排序
- 4
改进的冒泡排序
- 5
插入排序
- 6
选择排序
- 7
归并排序
- 8
快速排序
- 9
快速选择
- 10
计数排序
- 11
外部排序(外部归并排序)
- 12
稳定排序
- 13
选择最佳排序算法
- 14
挑战:0 和 1 的分区
- 15
解决方案回顾:0 和 1 的分区问题
- 16
挑战:对 0、1 和 2 进行分组
- 17
解决方案回顾:0、1、2 的划分
栈
- 1
栈简介
- 2
栈抽象数据类型
- 3
挑战:使用数组实现栈
- 4
解决方案回顾:使用数组实现栈
- 5
挑战:使用链表实现栈
- 6
解决方案回顾:使用链表实现栈
- 7
系统栈与方法调用
- 8
挑战:有序插入
- 9
解决方案回顾:有序插入
- 10
挑战:排序栈
- 11
解决方案回顾:栈排序
- 12
挑战:在底部插入
- 13
解决方案回顾:底部插入
- 14
挑战:反转栈
- 15
解答回顾:反转栈
- 16
挑战:反转栈中的 k 个元素
- 17
解决方案回顾:反转栈中的 k 个元素
- 18
挑战:括号匹配
- 19
解法回顾:括号匹配
- 20
挑战:最小栈
- 21
解决方案回顾:最小栈
- 22
挑战:最大括号嵌套深度
- 23
解法回顾:最大括号嵌套深度
- 24
挑战:最长连续平衡括号
- 25
解法回顾:最长连续平衡括号
- 26
挑战:反转括号
- 27
解法回顾:反转括号
- 28
挑战:查找重复的括号
- 29
解法回顾:查找重复的括号
- 30
挑战:打印括号编号
- 31
解法回顾:打印括号数
- 32
中缀、前缀和后缀表达式
- 33
挑战:中缀转后缀表达式转换
- 34
解答回顾:中缀转后缀表达式转换
- 35
挑战:中缀转前缀转换
- 36
解答回顾:中缀转前缀转换
队列
- 1
队列简介
- 2
使用数组实现队列
- 3
使用链表实现队列
- 4
使用循环链表实现队列
- 5
使用双向链表实现队列
- 6
挑战:使用栈实现队列
- 7
解决方案回顾:使用栈实现队列
- 8
挑战:反转队列
- 9
解法回顾:反转队列
- 10
挑战:在队列中反转前 k 个元素
- 11
解法回顾:在队列中反转 k 个元素
树
- 1
树结构简介
- 2
树的类型
- 3
二叉树简介
- 4
挑战:创建一个完全二叉树
- 5
解法回顾:创建一个完全二叉树
- 6
挑战:打印前序遍历
- 7
解决方案回顾:打印前序遍历
- 8
挑战:打印后序遍历
- 9
解法回顾:打印后序遍历
- 10
挑战:打印中序遍历
- 11
解决方案回顾:打印中序遍历
- 12
挑战:按层序遍历打印二叉树
- 13
解决方案回顾:打印层序遍历
- 14
挑战:非递归方式打印深度优先遍历
- 15
解法回顾:不使用递归实现深度优先遍历打印
- 16
挑战:使用两个队列逐行打印层序遍历结果
- 17
解法回顾:使用两个队列逐行打印层序遍历结果
- 18
挑战:使用队列逐行按层序打印一棵树
- 19
解法回顾:使用单个队列逐行打印层序遍历结果
- 20
挑战:打印螺旋树
- 21
解决方案回顾:打印螺旋树
- 22
挑战:第 n 个前序遍历节点
- 23
解决方案回顾:第 n 个前序遍历节点
- 24
挑战:第 n 个后序遍历节点
- 25
解决方案回顾:第 n 个后序遍历节点
- 26
挑战:第 n 个中序遍历节点
- 27
解决方案回顾:中序遍历的第 n 个节点
- 28
挑战:打印所有路径
- 29
解决方案回顾:打印所有路径
- 30
挑战:元素的数量
- 31
解答回顾:元素的数量
- 32
挑战:二叉树中所有节点的和
- 33
解法回顾:二叉树中所有节点的和
- 34
挑战:找出叶节点的数量
- 35
解法回顾:求叶子节点的数量
- 36
挑战:二叉树中满节点的个数
- 37
解法回顾:二叉树中满节点的数量
- 38
挑战:在二叉树中搜索指定值
- 39
解决方案回顾:在二叉树中搜索值
- 40
挑战:在二叉树中查找最大值
- 41
解决方案回顾:在二叉树中查找最大值
- 42
挑战:树的深度
- 43
解法回顾:树的深度
- 44
挑战:相同的树
- 45
解法回顾:相同的树
- 46
挑战:复制二叉树
- 47
解决方案回顾:复制二叉树
- 48
挑战:复制镜像树
- 49
解决方案回顾:复制镜像树
- 50
挑战:释放树
- 51
解决方案回顾:自由树
- 52
挑战:使用队列检查树的完整性
- 53
解法回顾:使用队列检查树的完整性
- 54
挑战:使用递归检查树的完整性
- 55
解法回顾:使用递归检查二叉树的完整性
- 56
挑战:判断树是否为堆?
- 57
解法回顾:判断树是否为堆
- 58
挑战:使用递归将树转换为列表
- 59
解法回顾:使用递归将树转换为列表
二叉搜索树
- 1
二叉搜索树(BST)简介
- 2
挑战:从有序列表创建二叉搜索树
- 3
解法回顾:从有序列表创建二叉搜索树
- 4
挑战:插入操作
- 5
解答回顾:插入操作
- 6
挑战:查找节点
- 7
解法回顾:查找节点
- 8
挑战:查找最小值
- 9
解法回顾:查找最小值
- 10
挑战:查找最大值
- 11
解决方案回顾:查找最大值
- 12
挑战:它是二叉搜索树吗?
- 13
解法回顾:它是二叉搜索树吗?
- 14
挑战:删除节点
- 15
解答回顾:删除节点
- 16
挑战:最近公共祖先
- 17
解法回顾:最近公共祖先
- 18
挑战:打印指定范围内的树节点
- 19
解决方案回顾:打印指定范围内的树节点
- 20
挑战:裁剪范围外的树节点
- 21
解决方案回顾:裁剪二叉搜索树中范围外的节点
- 22
挑战:在二叉搜索树(BST)中查找上界和下界值
- 23
解法回顾:在二叉搜索树中查找上界和下界值
- 24
挑战:这是否是一个BST数组?
- 25
题解回顾:它是一个BST数组吗?
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User