note
文章平均质量分 57
xinyingshi
这个作者很懒,什么都没留下…
展开
-
算法_01_Manacher
问题 求一个字符串最大的回文子串长度 例如:abc12321de, 最大回文子串:12321 返回5小概念:子串(连续)子数组(连续)子序列(可以连续)笨办法:回文分为奇回文和偶回文 奇回文:121 偶回文:1221 针对奇回文,可以从每个位置开始往左右两边扩,即可找到最大回文子串 那偶回文呢? 往里面填充特殊字符,方法: a121b...原创 2017-11-18 18:34:37 · 165 阅读 · 0 评论 -
算法_02_BFPRT
问题: 求一个数组中第 k 小的数。 要求:时间复杂度 严格O(N)分析: 如果把数组进行排序,然后取出第 k 个数,那么复杂度为 O(NlogN) 这种方法不行。 那么下面给出两种解答方法,第二种就是今天讲的 BFPRT。经典解法利用快排 patition 划分然后把比划分值小的放在左边,等于放中间,大于放右边,如果 k 在等于里面,那么命中了,如果没命中,...原创 2017-11-18 18:52:54 · 195 阅读 · 0 评论 -
算法_00_KMP
这些都是我当时的算法笔记,搬上来吧,怕丢^_^ 问题描述: 给定两个字符串str1和 str2,问,str1中是否包含 str2。 如果包含,请返回 str1中 str2开始的位置; 不包含,返回-1.思路 假设 str1长度为N,str2长度为 M笨办法 从str1的0位置,拿 str2字符串的每个字符依次去匹配。 时间复杂度:O(N*M),与...原创 2017-11-18 17:09:37 · 226 阅读 · 0 评论 -
算法_00_KMP 的应用
接着上一个blog,记录下可以用 KMP 来解的题目问题1 给定一个字符串str1,只能往str1的后面添加字符变成str2。 要求1:str2必须包含两个str1,两个str1可以有重合,但是不 能以同一个位置开头。 要求2:str2尽量短 最终返回str2思路: - 找出包含 str1最后一个字符的最大前缀后缀匹配字符串的长度endNext - 在 str1后...原创 2017-11-18 17:33:56 · 186 阅读 · 0 评论