![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 76
traceorigin
这个作者很懒,什么都没留下…
展开
-
字符串的相似度
许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程序。我们定义一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为: 1.修改一个字符(如把“a”替换为“b”); 2.增加一个字符(如把“abdd”变为“aebdd”); 3.删除一个字符(如把“travelling”变为“traveling”); 比如,对于“abcdefg”和“abcdef原创 2013-04-30 11:02:18 · 1547 阅读 · 0 评论 -
动态规划&备忘录方法&递归方法
动态规划的基本思想是,将原问题拆分为若干子问题,自底向上的求解。其总是充分利用重叠子问题,即通过每个子问题只解一次,把解保存在一个表中,巧妙的避免了子问题的重复求解。递归方法,采用的是自顶向下的思想,拆分为若干子问题,但是造成了子问题的重复求解。备忘录方法,采用的也是自顶向下的思想,但是该方法维护了一个记录子问题解的表,虽然填表动作的控制结构更像递归方法,但是的确避免了子问题的重复求解。原创 2013-04-30 13:22:16 · 7654 阅读 · 0 评论 -
斐波那契数列
当n=0时,f(n) = 0 当n=1时,f(n) = 1当n>1时,f(n) = f(n-1) + f(n-2)递归算法:int fun(int n){ if(n <= 0) return 0; if(n == 1) return 1; return fun(n-1)+fun(n-2);}备忘录方法:#include us原创 2013-04-30 14:04:10 · 2010 阅读 · 1 评论 -
KMP算法
KMP算法关键是构造next数组。其主要思想是寻找前缀串和后缀串的相等的最大长度。当next[j]=k时,p(0)...p(k-1)=p(j-k)...p(j-1)对于next[j+1]有两种情况:A. p(k)=p(j), 则next[j+1] = k+1B. p(k)!=p(j), 则令k=next[k]继续匹配,直到next[k]=-1;#includeusin原创 2013-05-04 20:05:12 · 758 阅读 · 0 评论 -
最长对称子串
题:给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度。回文就是正反读都是一样的字符串,如aba, abba等。例如:aaaa与abab:最长的回文串长度分别为4、3。解法一:暴力方法---从外往里对每一个字符,从该字符往右走,同时从串的结尾往中间走。若相遇,则对称;否则,不对称。复杂度O(n3)#include #include原创 2013-05-07 21:39:36 · 1890 阅读 · 0 评论 -
链表小结
本章主要内容如下:* 带头结点的链表反转* 不带头结点的链表反转* 链表有环1、 带头结点的链表反转思路:遍历每个节点,将其插入到头结点跟第一个节点之间,使其成为新的第一节点,其他的相应后移,即可实现。复杂度O(n)#include#includestruct ListNode{ int data; struct ListNode *next;};原创 2013-05-12 13:12:41 · 666 阅读 · 0 评论 -
一道笔试题
战报交流:战场上不同的位置有N个战士(n>4),每个战士知道当前的一些战况,现在需要这n个战士通过通话交流,互相传达自己知道的战况信息,每次通话,可以让通话的双方知道对方的所有情报,设计算法,使用最少的通话次数,使得战场上的n个士兵知道所有的战况信息,不需要写程序代码,得出最少的通话次数。先思考这么个问题:有a个node的cluster1和b个node的cluster2转载 2013-05-12 13:41:43 · 1554 阅读 · 0 评论