算法
文章平均质量分 73
qq_37032670
这个作者很懒,什么都没留下…
展开
-
求最长回文子串——Manacher 算法
原文地址:http://www.61mon.com/index.php/archives/181/ 一:背景展开目录 给定一个字符串,求出其最长回文子串。例如: (1):s="abcd", 最长回文长度为 1; (2):s="ababa", 最长回文长度为 5; (3):s="abccb", 最长回文长度为 4,即 bccb。 以上问题的传统思路大概是,遍历每一个字符,转载 2017-08-17 09:26:22 · 156 阅读 · 0 评论 -
透彻理解KMP算法 - 字符串匹配/子串查找
原文地址:https://www.douban.com/note/321870890/?type=rec 好好打下字符串算法基础。本篇通俗、透彻地解释线性时间复杂度的字符串匹配算法:KMP算法。 之前写过KMP算法,但时间久了回顾起来还是要花点儿时间,觉得需要进一步加深;现在就试图彻底吃透它。若是感兴趣豆友们能得到一点点的帮助就更好了~ 别忘了点个赞:-) KMP 算法的历史就不说了,感转载 2017-08-17 10:49:50 · 296 阅读 · 0 评论 -
随机生成和为S的N个整数——投影法
原文地址:http://blog.csdn.net/morewindows/article/details/8439393 感觉原文的代码有些问题,于是打算改下题目然后自己写一下代码。 原理: 以生成和为20的4个数为例,可以先生成随机生成0到20之间的三个数字再排序,假设得到了4,7,18。然后在X-Y数轴上画出这三个数,如下图: 然后将这些数值投影到转载 2017-08-07 11:44:12 · 311 阅读 · 0 评论 -
随机重排/洗牌程序
将一个序列打乱并对其进行随机的重新排列,每种序列的被选择概率要一样,不然的话: 解决办法就是:Fisher_Yates算法: #include #include void Random_shuffle(int a[], int len) { srand(time(NULL)); for (int i = 1; i < len; i++)原创 2017-08-07 11:18:20 · 260 阅读 · 0 评论 -
求集合的所有子集
包含N个元素的集合S,求集合S的所有子集,并且输出子集的过程中元素个数递增显示的(即依次输出包含0个元素、1个元素、2个元素...的子集) 例如:集合S包含三个元素{a, b, c},则它的所有子集为:{ }(空集), {a}, {b}, {c}, {a, b}, {a, c}, {b, c} 和{a, b, c}。 可以使用位操作的思路来求解,具体方法:用2进制Bit位来标记集合中的原创 2017-08-22 15:15:07 · 348 阅读 · 0 评论