![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 58
Spara
这个作者很懒,什么都没留下…
展开
-
KMP算法
KMP算法要解决的问题就是在字符串(也叫主串)中的模式(pattern)定位问题。说简单点就是我们平时常说的关键字搜索。模式串就是关键字(接下来称它为P),如果它在一个主串(接下来称为T)中出现,就返回它的具体位置,否则返回-1(常用手段)。 不讲暴力算法,直接上KMP原理: KMP的思路是,在每次比较发现冲突之后(比如AAAB和AAAC,B和C不同所以字符串不匹配,继续向前),无需整体变动,而是确定前缀与后缀相同的部分,之后直接越过重复部分开始比较,如图所示: 这里最后一位C和B有冲突,但是前面的AB原创 2021-12-08 20:14:02 · 152 阅读 · 0 评论 -
并查集结构
并查集 并查集是一种树型的数据结构,用于处理一些不交集的合并及查询问题 并查集主要包含以下几种基本操作: 1、建立新的并查集 2、把元素x和元素y所在的集合合并,要求x和y所在的集合不相交,如果相交则不合并 3、找到元素x所在的集合的代表,该操作也可以用于判断两个元素是否位于同一个集合,只要将它们各自的代表比较一下就可以了 看不懂?如图所示:比如说找D和E是不是存在于一个集合中:从D、E上溯到顶。发现都属于A,则存在于一个集合中。 将A、H集合合并: 但是并查集也有两种优化措施:按秩合并与路径压缩。 按秩原创 2021-12-07 21:21:39 · 431 阅读 · 0 评论 -
一种树递归算法的结构体公式
举例: 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 递归/动态规划的思路,在于思考中间状态,递归尤其是要考虑得到的新值与返回值。 对于本题而言,判断平衡二叉树,必须要求所有子树均为平衡二叉树。 在中间状态,需要得到三个值:左子树的高度、右子树的高度、左子树&右子树是否平衡? 需要返回两个值:我本身的高度、我是否平衡? 结构体如下: public static class ReturnType{ //原创 2021-12-07 16:56:05 · 110 阅读 · 0 评论