
算法
文章平均质量分 54
mashuangwe
这个作者很懒,什么都没留下…
展开
-
堆排序
从下到上循环建立最小堆原创 2017-08-08 07:45:17 · 263 阅读 · 0 评论 -
从长度为M的无序数组中找出N个最大的数
1、将数组前N个数调整成最小堆2、堆顶元素值依次与第N个元素以后的每个元素进行比较3、若堆顶元素值小,则将堆顶元素重新赋值为新元素的值,并且将前N个数重新调整为最小堆;否则判断下一个元素4、直到遍历完原数组的最后一个元素后,则最小堆中的元素即为待求的数组中的N个最大的数复杂度为O(M*log(N))python代码:# -*- coding: utf-8 -原创 2017-08-08 21:26:12 · 5092 阅读 · 0 评论 -
找长字符串中的最长回文
Manacher算法复杂度O(N)Python代码:# -*- coding: utf-8 -*-# manacher算法,求出字符串中的最长回文半径,复杂度为O(N)s = list('aaaaaassaaaaa')print len(s)s.insert(0, '$')for i in range(1, 2 * len(s), 2): s.insert原创 2017-08-12 22:50:53 · 262 阅读 · 0 评论