摘要: 对顶堆是由一个大顶堆和一个小顶堆组成的数据结构,用来处理动态求解一个序列中第k大或者第k小的数据结构。其中大顶堆在小顶堆的下面,为什么这样设计呢? 因为如果小顶堆的堆顶大于大顶堆的堆顶,那么对于小顶堆中的所有元素就大于大顶堆中的所有元素了。 原理很简单:根据数学中不等式的传递原理,假如一个集合A中的 阅读全文
posted @ 2024-01-30 22:01 lwj1239 阅读(6) 评论(0) 推荐(0) 编辑
摘要: **运算符是次方 //是向下取整的除法 /是除法但不是取整的除法 函数是一种抽象的东西,可以用来表达很多东西 def 函数名(形式参数):这个分号不能少,就跟大括号一样 函数主体 return 返回表达式 def square(squrae) return squre * squre 这个函数体现了 阅读全文
posted @ 2024-01-28 23:28 lwj1239 阅读(3) 评论(0) 推荐(0) 编辑
摘要: A*算法可视化视频和算法解释链接 A*算法是求解一个点到另一个点的最短路径,是针对点到点的最短路径算法。 A*算法是对bfs的改进,当求解一个源点到目标点的最短距离时,bfs会进行许多不必要的搜索,大大浪费了空间和效率,因此诞生了A*算法。 A*算法是一个启发式的搜索算法,它其实和迪杰斯特拉算法关系 阅读全文
posted @ 2024-01-26 16:39 lwj1239 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 单源最短路径是求解给定一个起点到其他所有的点的最短距离。 适用的范围:有向图、边的权值没有负数 洛谷测试链接 代码实现 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> 阅读全文
posted @ 2024-01-25 19:55 lwj1239 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 生成树是指无向图中连通且n个顶点n - 1条边的树。最小生成树就是构造连通图的最小代价的生成树。 最小瓶颈树就是在树上最大的边权值在所有生成树中最小。那么有一个定理,最小生成树就是最小瓶颈树,但最小瓶颈树不一定是最小生成树。 解决最小生成树有两种算法分别为:Prim(不常用)和Kruskal(常用) 阅读全文
posted @ 2024-01-24 10:04 lwj1239 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 并查集是一种集合结构,用来处理集合的合并和查询问题。 主要有两个函数:合并和查询 合并函数表示合并两个不同的集合 查询表示当前元素属于那个集合 逻辑结构是单链表的结构,每个节点向上指向一个属于的集合的代表元素,这个集合的代表元素的next指向它自己成环,表示这个集合的代表元素就是这个有环的节点 牛客 阅读全文
posted @ 2024-01-23 17:16 lwj1239 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 图分为有向图和无向图。 图的存储:邻接矩阵,邻接表,链式前向星。 图的拓扑排序的前提:有向、无环 那么拓扑排序还可以判断一个有向图有没有环 力扣测试链接 /** * Note: The returned array must be malloced, assume caller calls free 阅读全文
posted @ 2024-01-22 22:43 lwj1239 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 单调栈是一种栈,但栈里面的元素是具有单调性的,所以被称为单调栈 单调栈解决最经典的问题是每个位置都求 当前位置左边最近且小于(大于)当前位置的元素的位置 当前位置右边最近且小于(大于)当前位置的元素的位置 单调栈模板 #define _CRT_SECURE_NO_WARNINGS #include 阅读全文
posted @ 2024-01-20 15:42 lwj1239 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 字典树是一种树形结构,节点存储的不是完整的字符串而是前缀字符。 字典树的优点:因为通过前缀字符来选择树上的分支,所以可以节省时间 字典树的缺点:比较浪费空间,与总字符数量有关 字典树的根节点不存储字符。 用动态分配空间实现(常见) #define _CRT_SECURE_NO_WARNINGS #i 阅读全文
posted @ 2024-01-19 14:52 lwj1239 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 同余原理的背景 在写一些题目的时候有些问题说答案可能很大要求对最终的答案取模,这样可以保证答案在一个有效的范围内。 加法同余原理 (a + b) % m的值等于 ((a % m) + (b % m)) % m这个就是加法的同余原理。 乘法同余原理 (a * b) % m的值等于 ((a % m) * 阅读全文
posted @ 2024-01-07 20:32 lwj1239 阅读(21) 评论(0) 推荐(0) 编辑