“从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大的数
基础是快排