算法技巧
文章平均质量分 78
light_14
这个作者很懒,什么都没留下…
展开
-
我对于KMP算法的一点理解
KMP算法是很巧妙的,代码又短,它涉及到了我所学到的状态转移的东西,我用这个来理解KMP,效果是比较好的。首先说一下状态转移,用我的话来说就是转跳,从一个值转跳到另一个值,比如说匹配了3个字符,然后转跳到了匹配了1个字符(注意,这个就是KMP的一个简单描述,后面会详细阐述),从3到1。另外还会涉及到前缀和后缀,简单的理解就是字符串的前面和后面。比如说字符串s="abcdefghi",前原创 2015-02-17 19:53:16 · 398 阅读 · 0 评论 -
康托展开和逆康托展开
康托展开 康托展开的公式是 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,ai为当前未出现的元素中是排在第几个(从0开始)。 这个公式可能看着让人头大,最好举个例子来说明一下。 例如,有一个数组 s = ["A", "B", "C", "D"],它的一个排列 s1 = ["D", "B", "A"转载 2015-02-14 16:59:19 · 321 阅读 · 0 评论 -
二分图的匹配算法小结
无权二分图的匹配与匈牙利算法二分图:简单来说就是图中的点可以分成两部分,并且每一部分里面都没有边相连,任意一条边起点和终点都不在同一个点集。匹配:边的集合,任意两条边都没有公共点。匹配点,匹配边:在匹配中的点和边非匹配点,非匹配边:不在匹配集合中的点和边。最大匹配:图的所有匹配中,含边数最多的匹配就是最大匹配。完美匹配:匹配集合中涵盖了所有的点,所有的点都是匹配点。显然,完原创 2016-03-21 20:24:12 · 669 阅读 · 0 评论