
算法
zhangshuliai
这个作者很懒,什么都没留下…
展开
-
一道算法题
我看到的原创版本是这样的: 这是来自Adobe公司一道题目:一辆加满油的摩托车可以骑50千米,如果你有50辆这样的摩托车,你能骑多远? 很自然的思路是50辆摩托车一起开,在中途某个时间点淘汰到n辆,这n辆车剩余的油加到还剩下的50-n辆车中,剩余的车继续开。依次进行。 有一点也很明白易懂,就是这n辆车剩余的油刚好可以加满其余的车。 所以,问题关键是在什么时候开始淘汰车加油? 大概是2分法原创 2012-07-23 14:41:51 · 1206 阅读 · 0 评论 -
一种字符串相似性度量的方法
在检索系统中,如果输入的查询在系统中找不到索引,这时候就需要从最热查询中找到一个与输入查询最相似的查询。最热查询容易得到,但是相似该如何度量? 首先两点要满足: 1,如果s1和s2完全相同,则相似度为1 2,而如果s1和s2不包含相同的字符,则相似度为0 这里给出一种字符串相似性度量的方法: 求字符串s1和s2的相似性: int function similar(s1, s2) fo原创 2012-07-25 21:03:17 · 1516 阅读 · 0 评论 -
一道别致的算法面试题
周日参加了一个电话面试,其中有一道面试题。 题目是这样的: 输入一个字符串,如何找到和这个字符串字符内容相同的字符串,不考虑字符顺序。比如abcc和cbac就是字符内容相同,而和abc字符内容不相同。 因为本身没有遇到需要这样算法的问题,只能临场发挥了。 1,直观的感觉是建立哈希表,哈希的键位字符串的长度,这样一次查找可以找到所有相同长度的字符串,然后再次哈希,按照ascll码求出相同as原创 2012-07-30 10:48:34 · 631 阅读 · 0 评论 -
HASH算法
从课本上面知道,HASH算法的好坏关键在于散列的是否均匀,假设1000个数据,100个key,平均每个key对应数据位10个,如果每个key都对应10个,这就是很好的散列算法。然而,如果我们不知道数据的分布情况,随机设计一种散列算法,每个key都可能对应0~1000个数据,但是整体来说符合泊松分布,越是偏离最优的情况,其概率越低。比如这样一种散列:一个key对应1000个数据,其它key都对应0个原创 2012-07-31 15:23:07 · 490 阅读 · 0 评论 -
霍夫曼编码和熵
曾经参加过一个面试,问题是有32只球队,每个球队获得冠军的概率不相同,给一种猜测冠军的方法,使得平均猜测的次数最少。 面试官靠我的是霍夫曼编码,但我本身不接触霍夫曼编码好多年,压根没想到这种方法(PS:由于面试官的个人喜好真的可能错过人才啊)。不过我想到了熵。把数据尽可能分成均匀的两份,一次递归,得到一个二叉树,就是最好的答案。关键是怎么样可以使得左右子树概率之和最接近?并且本次分的很平均并不能原创 2012-09-17 23:23:28 · 2895 阅读 · 0 评论 -
Shader使用第一条
谨慎使用内置的汗水比如点积函数dot,一些芯片部支持原创 2014-09-11 15:11:31 · 723 阅读 · 0 评论