KMP,Manacher,BFPRT

“从0开始做LeetCode”之KMP,Manacher,BFPRT

1.KMP算法

在这里插入图片描述
next数组
在这里插入图片描述
在这里插入图片描述
子树问题 也用这个方法

2.Manacher算法
在这里插入图片描述
求最大回文子串

暴力解法
在这里插入图片描述
回文半径,回文右边界,回文中心
在这里插入图片描述
可能性1: i i i不在回文有边界内,暴力解

后面的可能性拆为3种

可能性2:对称点在回文内,对称点回文半径在内,和对称点的回文半径一样
在这里插入图片描述
可能性3:对称点在回文内,对称点回文半径在外, i i i-> R R R
在这里插入图片描述
可能性4:对称点在回文内,对称点回文半径压线,开始的一段不用管,后面暴力试
在这里插入图片描述
整个Manacher算法的时间复杂度O(N)
在这里插入图片描述
整理:后面三种的可能性
在这里插入图片描述
扩展题
在这里插入图片描述
第一次到右边界停,加上之前不是回文的部分

3.无序数组中找到第k小的或者第k大的数
在这里插入图片描述
基础是快排
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/bosszhao20190517/article/details/107893262