数据结构&算法
madbluesky
这个作者很懒,什么都没留下…
展开
-
动态规划算法学习
问题及分析: 一种平衡的0-1矩阵 考虑n *n 矩阵的赋值问题:只能赋0和1,n 为偶数,使每一行和列均含n /2个0及n /2个1。例如,当n =4时,两种可能的方案是: + - - - - + + - - - - + | 0 1 0 1 | | 0 0 1 1 | | 1 0 1 0 | ...原创 2011-10-06 15:46:45 · 122 阅读 · 0 评论 -
堆排序java实现
/** * 大根堆,从小到大排序 * * @author Administrator * */ public class HeapSorter { private static int N = 10000000; /** * @param args */ public static void main(String[] args) { i...原创 2011-10-16 23:10:40 · 118 阅读 · 0 评论 -
bloomfilter【布隆过滤器】
从今天开始仔细学习学习大数据量处理相关的算法,这是第一个算法,布隆过滤器 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点: 对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1, 查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的 结果是100%正确的。同时也不支持删除一个已经插入的关键字...原创 2012-02-24 18:17:44 · 94 阅读 · 0 评论 -
有环链表查找环
有环链表如何高效的判断是否有环,以及在何处产生环? 采用2个指针不同步数(步数小的每次1步,步数大的每次2步),步数大的如果能够与步数小的相遇则必然存在环。 相遇后的情况如图,假设相遇后步数大的回绕环遍历了n遍,步数小的肯定一遍也没遍历完,假设第一段距离为a,第2段距离为c,第3段距离为b 则有(a+c)*2 = a+n(b+c)+c,转换后得 a = n(b+c) - c...原创 2012-03-01 14:51:45 · 92 阅读 · 0 评论 -
最少硬币数问题
[code="java"] import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * c1...cn个硬币,面值各不相同,现要用最少的硬币数,使得钱数为k,给出方案 * @author sky * * 设dp[i]为k...原创 2012-09-03 23:09:46 · 119 阅读 · 0 评论 -
求数组的最大差值(maxij问题)
[b]题目:[/b] 数组a[0..n-1],找出i和j使得a[j] - a[i]的值最大。 注意j > i。 要求是时间复杂度O(n),空间复杂度O(1)。 [b] 思路:[/b] 样例数组 11,1,5,8,11,2,3,2,11,5,3 1.先从后到前依次求出相邻2个数的差值,得到 {-2,-6,9,-1,1,-9,3,3,4,-10} 2.问题...原创 2013-10-10 09:53:53 · 416 阅读 · 0 评论