Content
10 Lessons • 0 Quizzes • 0 Challenges
复杂度度量
- 1
比较算法
- 2
示例:测量单循环算法的时间复杂度
- 3
示例:嵌套循环算法的时间复杂度
- 4
渐近分析与大O表示法简介
- 5
其他常见的渐近符号及大O符号为何更常用
- 6
实用公式
- 7
常见复杂度场景
- 8
挑战:带加法的嵌套循环的时间复杂度(大O表示法)
- 9
解法:带加法的嵌套循环的时间复杂度(O(n²))
- 10
挑战:带减法的嵌套循环的时间复杂度(O(n²))
- 11
解法:带减法的嵌套循环的时间复杂度(O(n²))
- 12
挑战:嵌套循环中带有乘法的代码的时间复杂度分析
- 13
解法:具有乘法操作的嵌套循环的时间复杂度(O(n))
- 14
挑战:嵌套循环与乘法(基础)
- 15
解法:嵌套循环与乘法(基础)
- 16
挑战:带乘法的嵌套循环(中级)
- 17
解决方案:带乘法的嵌套循环(中级)
- 18
挑战:嵌套循环与乘法(高级)
- 19
解决方案:带乘法的嵌套循环(高级)
- 20
挑战:嵌套循环与乘法(进阶)
- 21
解决方案:带乘法的嵌套循环(进阶版)
- 22
复杂度面试题
数组
- 1
什么是数组?
- 2
二维数组
- 3
什么是列表?
- 4
挑战:从数组中移除偶数整数
- 5
解决方案:从数组中移除偶数整数
- 6
挑战:合并两个有序数组
- 7
解法:合并两个有序数组
- 8
挑战:找出和为 K 的两个数
- 9
解法:找出和为 K 的两个数
- 10
挑战:除自身以外数组的乘积
- 11
解决方案:除自身以外数组的乘积
- 12
挑战:在数组中找到最小值
- 13
解决方案:在数组中查找最小值
- 14
挑战:找出数组中第一个不重复的整数
- 15
解决方案:数组中第一个不重复的整数
- 16
挑战:在数组中查找第二大的值
- 17
解决方案:在数组中查找第二大的值
- 18
挑战:旋转数组
- 19
解决方案:旋转数组
- 20
挑战:重新排列正负数值
- 21
解决方案:重新排列正负数值
- 22
挑战:将已排序数组按最大/最小形式重新排列
- 23
解决方案:将有序数组按最大/最小形式重新排列
- 24
挑战:最大子数组
- 25
解决方案:最大子数组
- 26
数组面试题
链表
- 1
什么是单向链表(SLL)?
- 2
基本链表操作
- 3
单链表中的插入操作
- 4
单链表中的插入操作(插入到指定位置之后)
- 5
单链表删除(实现)
- 6
链表与数组的对比
- 7
什么是双向链表(DLL)?
- 8
带尾指针的链表
- 9
挑战:在尾部插入
- 10
解决方案:尾部插入
- 11
挑战:在单向链表中搜索
- 12
解决方案:在单向链表中搜索
- 13
挑战:按值删除
- 14
解决方案:按值删除
- 15
挑战:求链表的长度
- 16
解决方案:查找链表的长度
- 17
挑战:反转链表
- 18
解决方案:反转链表
- 19
挑战:链表环
- 20
解决方案:链表环
- 21
挑战:链表的中间节点
- 22
解决方案:链表的中间节点
- 23
挑战:从链表中移除重复元素
- 24
解决方案:从链表中移除重复元素
- 25
挑战:链表的并集与交集
- 26
解决方案:链表的并集与交集
- 27
挑战:从末尾返回第 N 个节点
- 28
解决方案:返回倒数第 N 个节点
- 29
挑战:判断一个双向链表是否为回文
- 30
解决方案:判断双向链表是否为回文
- 31
链表面试题
栈/队列
- 1
什么是栈?
- 2
栈(实现)
- 3
什么是队列?
- 4
队列(实现)
- 5
挑战:使用队列生成从 1 到 n 的二进制数
- 6
解法:使用队列生成从 1 到 n 的二进制数
- 7
挑战:使用一个数组实现两个栈
- 8
解决方案:使用一个数组实现两个栈
- 9
挑战:反转队列的前 k 个元素
- 10
解决方案:反转队列的前 k 个元素
- 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
挑战:从有向图中移除一条边
- 24
解决方案:从有向图中移除边
- 25
图算法面试题
树
- 1
什么是树?
- 2
树的类型
- 3
一棵树为何被称为平衡树?
- 4
什么是二叉树?
- 5
关于完全二叉树的更多内容
- 6
偏斜二叉树
- 7
什么是二叉搜索树(BST)?
- 8
二叉搜索树中的插入
- 9
BST中的插入操作(完整实现)
- 10
二叉搜索树中的查找(实现)
- 11
二叉搜索树中的删除操作
- 12
二叉搜索树中的删除操作(实现)
- 13
二叉搜索树中的前序遍历
- 14
二叉搜索树中的中序遍历
- 15
二叉搜索树中的后序遍历
- 16
什么是AVL树?
- 17
AVL 插入
- 18
AVL 删除
- 19
什么是红黑树?
- 20
红黑树插入
- 21
红黑树删除
- 22
什么是2-3树?
- 23
2-3 插入
- 24
2-3 叶子节点元素的删除
- 25
2-3 删除内部节点中的元素
- 26
2-3-4 树
- 27
树的概述
- 28
挑战:在二叉搜索树中找到最小值
- 29
解决方案:在二叉搜索树中查找最小值
- 30
挑战:在二叉搜索树中找到第 k 个最大值
- 31
解决方案:在二叉搜索树中找到第 k 个最大值
- 32
挑战:在二叉搜索树中查找给定节点的祖先
- 33
解法:在二叉搜索树中查找给定节点的祖先
- 34
挑战:求二叉搜索树的高度
- 35
解法:求二叉搜索树的高度
- 36
挑战:找出距离根节点为 k 的所有节点
- 37
解法:找出距离根节点为 k 的节点
- 38
树相关的面试题
Trie(高级树结构)
- 1
什么是 Trie?
- 2
Trie 的结构
- 3
Trie 中的插入操作
- 4
在 Trie 中搜索
- 5
Trie中的删除操作
- 6
挑战:Trie 树中的单词总数
- 7
解法:Trie树中的单词总数
- 8
挑战:找出存储在 Trie 中的所有单词
- 9
解决方案:找出存储在 Trie 中的所有单词
- 10
挑战:使用 Trie 对数组进行排序
- 11
解决方案:使用 Trie 进行数组排序
- 12
挑战:使用 Trie 从字典中构造单词
- 13
解决方案:使用 Trie 从字典中构造单词
- 14
Trie 面试题
堆
- 1
什么是堆
- 2
为什么使用堆?
- 3
堆在数组中的表示
- 4
最大堆:简介
- 5
最大堆(实现)
- 6
最小堆:简介
- 7
最小堆(实现)
- 8
挑战:将最大堆转换为最小堆
- 9
解决方案:将最大堆转换为最小堆
- 10
挑战:在数组中找到第 k 个最小的元素
- 11
解法:在数组中找到最小的 k 个元素
- 12
挑战:在数组中找到最大的 K 个元素
- 13
解决方案:在数组中找到最大的 K 个元素
- 14
堆面试题
哈希表
- 1
什么是哈希表?
- 2
哈希函数
- 3
哈希表中的冲突
- 4
从零构建一个哈希表
- 5
哈希表中的添加/删除与查找(实现)
- 6
哈希表的完整实现
- 7
Trie 与哈希表
- 8
HashMap 与 HashSet
- 9
挑战:判断一个数组是否为另一个数组的子集
- 10
解决方案:一个数组作为另一个数组的子集
- 11
挑战:检查数组是否不相交
- 12
解决方案:检查数组是否不相交
- 13
挑战:在数组中找出对称对
- 14
解决方案:在数组中找出对称数对
- 15
挑战:追踪一次旅程的完整路径
- 16
解决方案:追踪旅程的完整路径
- 17
挑战:在数组中找到两对元素,使得 a + b = c + d
- 18
解决方案:在数组中找到两对元素,使得 a + b = c + d
- 19
挑战:和为0的子数组
- 20
解法:和为0的子数组
- 21
挑战:使用哈希表构造单词
- 22
解决方案:使用哈希表构造单词
- 23
挑战:找出和为 k 的两个数——哈希法
- 24
解决方案:找出和为 k 的两个数——哈希法
- 25
挑战:数组中第一个不重复的整数——哈希法
- 26
解决方案:数组中第一个不重复的整数——哈希法
- 27
挑战:链表环检测——哈希法
- 28
解决方案:链表环检测——哈希法
- 29
挑战:使用哈希表删除链表中的重复元素
- 30
解决方案:使用哈希表删除链表中的重复元素
- 31
挑战:链表的并集与交集——哈希法
- 32
解决方案:链表的并集与交集——哈希法
- 33
哈希面试题
数据结构总结
- 1
线性与非线性数据结构概述
- 2
结论
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User