算法
文章平均质量分 75
insistGoGo
这个作者很懒,什么都没留下…
展开
-
递归学习_组合_生成全子集组合排列(不含空集)
生成全子集组合排列(不含空集)Sample Input41 2 3 4Sample Output11212312341241313414223234243344#include using nam原创 2011-09-25 23:13:16 · 2271 阅读 · 0 评论 -
Reservoir Sampling - 蓄水池抽样
文章转载于HappyAngle,在此谢过。问题起源于编程珠玑Column 12中的题目10,其描述如下: How could you select one of n objects at random, where you see the objects sequentially but you do not know the value of n beforehand? F转载 2013-10-06 16:43:43 · 1224 阅读 · 0 评论 -
Manacher's ALGORITHM
文章转载于Felix's Blog,在写谢过,便于理解,文章有稍微改动。Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串首先用一个非常巧妙的方式对子串预处理,:(1)将所有可能的奇数/偶数长度的回文子串都转换成了奇数长度:在每个字符的两边都插入一个特殊的符号。比如 abba 变成 #a#b#b#a#, aba变成 #a#b#a#。 (2)为了进一步转载 2013-10-04 18:33:18 · 6666 阅读 · 2 评论 -
如何预测用户query意图
转载于博客园的文章:如何预测用户query意图有一个朋友问,一个用户搜索一个query是“百度”,怎么知道用户真正是想找什么呢。我回答说,分析之前搜索这个query的用户点了些什么结果啊。朋友继续问,如果没有用户点击呢。呃,如果没有点击,这个问题就比较复杂了。整理了下思路,于是写成了本文。主要描述了关于如何预测用户query意图。希望会有所帮助。首先我们转载 2013-09-18 18:29:14 · 1986 阅读 · 0 评论 -
素数的求解
素数的定义定义:在一个大于0的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。问题 1、判断一个数是否为素数问题 2、判断[1,n]之间的素数------------------------问题 1、判断一个数是否为素数思路(1) 试除法基本思路:判断n是否为素数时,检查区间[2,n - 1]之间的数是否能整除n。代码:bool IsPrime(i原创 2013-09-17 08:25:09 · 2991 阅读 · 4 评论 -
背包问题九讲笔记_完全背包
摘自Tianyi Cui童鞋的《背包问题九讲》,稍作修改,方便理解。本文包含的内容:---------------------------------------------完全背包问题描述已知:有一个容量为V的背包和N件物品,第i件物品的重量是weight[i],收益是cost[i]。条件:每种物品都有无限件,能放多少就放多少。问题:在不超原创 2013-09-04 20:34:49 · 21629 阅读 · 5 评论 -
求解区间最值的ST算法
作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例举例:给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1。方法:ST算法分成两部分:离线预处理 (nlogn)和 在线查询(O(1))。虽然还可以使用线段树、树状链表等求解区间最值,但是ST算法要比它们更快,而且适用于在线查询。(1)离线预处理:运用DP思想,用于求解区间最值,并保原创 2013-08-12 18:24:56 · 8017 阅读 · 4 评论 -
KMP算法(未完待续)
KMP算法由Knuth、Morris、Pratt三位前辈提出来的,取了这三个人的名字的头一个字母。用途:用于处理字符串匹配,判断主串是否包含模式串。举例:匹配的结果:返回匹配的下标5思想:每当一趟匹配过程中出现字符比较不等时,不需回溯主串指针,而是利用已经得到的部分匹配的结果,将模式串向右滑动尽可能远的一段距离后,继续进行比较,而尽可能地减少比较次数。与朴素原创 2013-07-12 21:35:48 · 1135 阅读 · 0 评论 -
每日一题(23) - 找出数组中重复的数据和丢失的数据。
题目来自于网上题目:一个大小为n的数组,元素范围为1-n,但是其中一些数组有重复,同时另一些数据丢失了。 现在要求找出其中的重复数据和丢失的数据。要求:但是面试官要求优化到时间O(n),空间O(1)即,只能遍历常数次数组,只能使用常数个临时空间思想:利用计数排序的思想,把数组的第i个数对应着数组i,并统计其出现次数。原始的计数排序需要O(n)的临时空间。这里要求空间复杂度为O(原创 2013-07-04 08:31:08 · 2155 阅读 · 0 评论 -
热词统计发现算法3则
转载于http://qing.blog.sina.com.cn/2090594487/7c9bf0b733001jsa.html以搜索为例,点击类似。所有变换和简化须不影响排序结果。排位变化最初的算法参考电影排行榜,统计昨日Top词、前日Top词,然后计算每个词w两天的排位差,排位变化最大的就是最热的词。排序取出取出排位前 N 的词语集合。WZ为昨日转载 2013-06-27 16:17:49 · 2940 阅读 · 0 评论 -
怎样从10亿查询词找出出现频率最高的10个
原创文章,转载请注明: 转载自董的博客本文链接地址: http://dongxicheng.org/big-data/select-ten-from-billions/1. 问题描述在大规模数据处理中,常遇到的一类问题是,在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题通常称为“top K”问题,如:在搜索引擎中,统计搜索最热门的10个查询词;在转载 2012-05-25 19:20:47 · 3342 阅读 · 0 评论 -
程序员编程艺术:第九章、闲话链表追赶问题
作者:July、狂想曲创作组。出处:http://blog.csdn.net/v_JULY_v 。前奏 有这样一个问题:在一条左右水平放置的直线轨道上任选两个点,放置两个机器人,请用如下指令系统为机器人设计控制程序,使这两个机器人能够在直线轨道上相遇。(注意两个机器人用你写的同一个程序来控制)。 指令系统:只包含4条指令,向左、向右、条件判定、无条件跳转。其中向左(右)转载 2012-05-08 19:23:30 · 931 阅读 · 0 评论 -
书单
准备好好学习下算法,网上搜的书单入门书:算法竞赛入门经典(刘汝佳的白书)ACM程序设计培训教程计算机算法设计与分析数据结构与算法分析C++描述(第三版)进阶书:算法导论算法艺术与信息学竞赛(刘汝佳的黑书,难度较深,不适合新手) + 实用算法的分法与程序设计其他: 编程之美--微软技术面试心得 Programming Pearls 编程珠玑 (两本书常转载 2011-10-21 20:57:11 · 1073 阅读 · 0 评论 -
非重复组合排列(含重复数字时,生成不重复组合排列)
Sample Input41 2 2 3Sample Output122312321322212321322213223123122321312232123221分析数据:这里和不含重复数据生成全组合排列代码是不同的原创 2011-10-01 18:01:28 · 7002 阅读 · 3 评论 -
递归学习_组合_全组合排列
Sample Input31 2 3Sample Output123132213231312321#include using namespace std;const int len = 10;int n;int mat[l原创 2011-10-01 17:41:01 · 1177 阅读 · 0 评论 -
递归学习_组合_普通选择性组合排列
Sample Input5 31 2 3 4 5Sample Output123124125134135145234235245345#include using namespace std;const int le原创 2011-10-01 12:40:21 · 962 阅读 · 0 评论 -
递归学习_组合_类循环组合排列
Sample Input:4 2Sample Output0000000100100011010001010110011110001001101010111100110111101111实例分析:例子中,原创 2011-10-01 18:23:50 · 1370 阅读 · 0 评论 -
非重复生成全子集组合排列(含重复数字时,生成不重复全子集组合排列)
Sample Input41 2 2 3Sample Output112122122312313222223233如果采用上篇文章的程序(处理不含重复数),运行的结果是:以上均为重复数据,上标表示在原数据中使用的原创 2011-09-28 22:15:23 · 2217 阅读 · 0 评论