摘要: Manacher Algorithm算法,俗称马拉车算法,其时间复杂为O(n)。该算法是利用回文串的特性来避免重复计算的,至于如何利用,且由后面慢慢道来。 在时间复杂度为O(n^2)的算法中,我们在遍历的过程要考虑到回文串长度的奇偶性,比如说“abba”的长度为偶数,“abcba”的长度为奇数,这样 阅读全文
posted @ 2019-07-26 17:07 jiamian22 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 概述: RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。这两个问题是在实际应用中经常遇到的问题,下面介绍一下解决这两种问题的比较高效的 阅读全文
posted @ 2019-07-26 12:49 jiamian22 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 单调栈and单调队列(此文太多坑了,以后再填) 单调栈 单调栈是一种特殊的栈,特殊之处在于栈内的元素都保持一个单调性,可能为单调递增,也可能为单调递减。 性质: 单调栈里的元素具有单调性 元素加入栈前,会在栈顶端把破坏栈单调性的元素都删除 使用单调栈可以找到元素向左遍历第一个比他小的元素,也可以找到 阅读全文
posted @ 2019-07-26 01:22 jiamian22 阅读(372) 评论(0) 推荐(0) 编辑