随笔分类 - 算法类
摘要:Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点: 对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的结果是100%正确的...
阅读全文
摘要:FROM:http://www.cppblog.com/mythit/archive/2009/04/21/80633.html摘自:http://www.cppblog.com/mythit/archive/2009/04/21/80633.htmlhttp://apps.hi.baidu.com...
阅读全文
摘要:最近共同祖先问题 Union/Find 数据结构的一个例子是离线的最近共同祖先(NCA)问题。 给定一棵树和树中节点对的列表,对每一个节点对需找到其最近的共同祖先。图中显示了一棵树,其带有一个含5个请求的对偶列表。对于节点对u和z,节点C是最近的共同祖先(思考 A和B是否满足条件?)。该问题为离线的...
阅读全文
摘要:题目:定义Fibonacci数列如下:/0n=0f(n)=1n=1\f(n-1)+f(n-2)n=2输入n,用最快的方法求该数列的第n项。分析:在很多C语言教科书中讲到递归函数的时候,都会用Fibonacci作为例子。因此很多程序员对这道题的递归解法非常熟悉,看到题目就能写出如下的递归求解的代码。/...
阅读全文
摘要:对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方,...
阅读全文
摘要:题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 我的思路是: 如果要知道一个字符是否只出现过一次,必须遍历一次字符串知道所有字符出现过的情况,从前从后都可以。但在遍历中要用数组统计每个字符的出现次数,到最后将,再遍历一遍数组,得到出现次数为1的第一个字符,取出。...
阅读全文