算法
文章平均质量分 85
波逐流
这个作者很懒,什么都没留下…
展开
-
KMP算法详解
KMP算法详解KMP算法就是一种字符串匹配算法,对于给定的两个字符串,str1与str2,查询str1中是否包含str2。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。在这个算法中,主要采用的一种思想是利用一个额外的next数组,来记录str2中每个字符的相同最长前缀和后缀,从而来利用优化匹配速度。例如对于str1:ababababab...原创 2018-07-26 18:00:08 · 375 阅读 · 0 评论 -
Manacher算法详解
Manacher算法详解Manacher算法是用来求最长回文长度的一个算法,不同于暴力方法的O(n*n)的时间复杂度,manacher算法可以达到O(n)是时间复杂度。对于暴力求解一个字符串中最长的回文长度,也是有着技巧的,因为要考虑字符串为奇数偶数两种情况,所以暴力求解一般需要对字符串做一个优化,即是给每个字符之间插入一个标志符。例如对于字符串str1 : abcdcbeee假如...原创 2018-07-27 10:47:54 · 1087 阅读 · 0 评论 -
morris遍历详解(实现树的前中后序遍历)
morris遍历详解(实现树的前中后序遍历)morris遍历介绍morris遍历是二叉树遍历算法的至强算法,不同于递归,非递归(栈实现)的空间复杂度,morris遍历可以将非递归遍历中的树的深度的空间开销,降为O(1)。从而实现时间复杂度为O(n),而空间复杂度为O(1)的精妙算法。morris遍历利用的是树的叶节点左右孩子为空,这一特性来实现空间开销的极度缩减。morris遍历的...原创 2018-08-15 08:18:01 · 2761 阅读 · 0 评论