做网站怎么注册域名,天元建设集团有限公司张桂玉丑闻,设计公司logo图片,seo实战密码第四版电子书文章目录1.数组1.1 寻找数组中第二小的元素1.2 找到数组中第一个不重复出现的整数1.3合并两个有序数组1.4 重新排列数组中的正值和负值2.栈2.1 前缀表达式#xff0c;中缀表达式#xff0c;后缀表达式2.1.1 中缀表达式转化为后缀表达式2.1.2 中缀表达式转化为前缀表达式2.2使…
文章目录1.数组1.1 寻找数组中第二小的元素1.2 找到数组中第一个不重复出现的整数1.3合并两个有序数组1.4 重新排列数组中的正值和负值2.栈2.1 前缀表达式中缀表达式后缀表达式2.1.1 中缀表达式转化为后缀表达式2.1.2 中缀表达式转化为前缀表达式2.2使用栈计算后缀表达式2.3对栈的元素进行排序2.4判断表达式是否括号平衡3.队列3.1 使用队列表示栈3.2 对队列的前k个元素倒序3.3 使用队列生成从1到n的二进制数4.链表4.1 反转链表4.2检测链表中的循环4.3返回链表倒数第N个节点4.4删除链表中的重复项5.树5.1 求二叉树的高度5.2 在二叉搜索树中查找第k个最大值5.3 查找与根节点距离k的节点5.4 在二叉树中查找给定节点的祖先节点6.图6.1 实现广度和深度优先搜索6.2检查图是否为树6.3计算图的边数6.4找到两个顶点之间的最短路径7.字典树这是一种高效的树形结构但值得单独说明7.1 计算字典树中的总单词数7.2 打印存储在字典树中的所有单词7.3 使用字典树对数组的元素进行排序7.4 使用字典树从字典中形成单词7.5 构建T9字典字典树 DFS 8.散列表哈希表8.1 在数组中查找对称键值对8.2 追踪遍历的完整路径8.3 查找数组是否是另一个数组的子集8.4 检查给定的数组是否不相交1.数组
1.1 寻找数组中第二小的元素
思路升序排序之后输出第二个数字
1.2 找到数组中第一个不重复出现的整数
1.3合并两个有序数组
def merge_sort(a, b):
ret []
i j 0
while len(a) i 1 and len(b) j 1:if a[i] b[j]:ret.append(a[i])i 1else:ret.append(b[j])j 1
if len(a) i:ret a[i:]
if len(b) j:ret b[j:]
return retif __name__ __main__:
a [1,3,4,6,7,78,97,190]
b [2,5,6,8,10,12,14,16,18]
print(merge_sort(a, b))1.4 重新排列数组中的正值和负值
2.栈
2.1 前缀表达式中缀表达式后缀表达式
2.1.1 中缀表达式转化为后缀表达式
中缀表达式转后缀表达式的规则
1.遇到操作数直接输出2.栈为空时遇到运算符入栈3.遇到左括号将其入栈4.遇到右括号执行出栈操作并将出栈的元素输出直到弹出栈的是左括号左括号不输出5.遇到其他运算符’”-”*”/’时弹出所有优先级大于或等于该运算符的栈顶元素然后将该运算符入栈6.最终将栈中的元素依次出栈输出。 经过上面的步骤得到的输出既是转换得到的后缀表达式。
2.1.2 中缀表达式转化为前缀表达式
2.2使用栈计算后缀表达式
2.3对栈的元素进行排序
2.4判断表达式是否括号平衡
3.队列
3.1 使用队列表示栈
3.2 对队列的前k个元素倒序
3.3 使用队列生成从1到n的二进制数
4.链表
4.1 反转链表
4.2检测链表中的循环
4.3返回链表倒数第N个节点
4.4删除链表中的重复项
5.树
5.1 求二叉树的高度
5.2 在二叉搜索树中查找第k个最大值
5.3 查找与根节点距离k的节点
5.4 在二叉树中查找给定节点的祖先节点
6.图
6.1 实现广度和深度优先搜索
6.2检查图是否为树
6.3计算图的边数
6.4找到两个顶点之间的最短路径
7.字典树这是一种高效的树形结构但值得单独说明
7.1 计算字典树中的总单词数
7.2 打印存储在字典树中的所有单词
7.3 使用字典树对数组的元素进行排序
7.4 使用字典树从字典中形成单词
7.5 构建T9字典字典树 DFS
8.散列表哈希表
8.1 在数组中查找对称键值对
8.2 追踪遍历的完整路径
8.3 查找数组是否是另一个数组的子集
8.4 检查给定的数组是否不相交
参考 (1) https://baijiahao.baidu.com/s?id1609200503642486098wfrspiderforpc - (应对程序员面试你必须知道的八大数据结构)