
【深入浅出算法】
铭毅天下
和你一起,死磕Elastic!
-
原创 组合数打印
组合数打印 //[北京直真笔试题]比如给定4个数,分别为1,2,3,4。现在要求从中选取3个的组合数,不能重复。 即打印:123,124,234...。 方法1:【思路】1)将1,2,3,4存入数组中,然后从4个数中选出1个数,即为selVal;2)接下来的工作即是从剩余的3个数中选取2个数,需要存储除selVal外的剩余3个数;3)选取后打印selVal和选的2个数即可。 【分析】:时间2012-10-21 17:02:082830
2
-
原创 全排列打印
全排列打印 全排列的要求: 输入:字符串"abc"。 输出:如下图示, 思路1——全排列的递归实现核心思想: 比如对于字符串”abc”, 第一步:求所有可能出现在第一个位置的字符即:a,b,c。 使用方法:把第一个字符和后面的b、c字符进行交换。 第二步:把第一个字符后面的所有字符仍然看成两部分,即后面的第一个字符及除此之外的其他字符。然后完成后面的第一个字符与其他2012-10-22 10:34:244226
3
-
原创 Trie树/字典树的简介及实现
Trie树|字典树的简介及实现 1综述 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。 它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 Trie树结构的优点在于: 1) 不限制子节点的数量; 2) 自定2012-10-22 11:07:494352
6
-
原创 规律数组的打印
规律数组的打印 【北京直真笔试题】打印数组如下4*4数组,要求打印N*N的数组? 1 12 11 10 2 13 16 9 3 14 15 8 4 5 6 7 【思路】: 1.发现规律;如上图所示,仔细发现是有规律的,先第1、2、3、4步骤;我们发现第5、6、7…步骤和前面的1、2、3、4步骤是相同的,只是边界值不同。 2.考虑实现;实现的问题2012-10-26 07:48:482021
2
-
原创 坑爹的智力题,挑战你的智商!
话不多少,在QQ群里面看到网友分享的几个极品的智力题。挺有挑战性,或许大家一旦看过就感觉很简单了,第一眼说实话挺不好想的。 结合网上的分享,解读下: 1.答案:四十三。只有这种汉字写法的四十三才能满足要求。 2.答案:这个我们从小时候到现在一直都在玩,“石头、剪子、布”,极品,这也能想出来! 32012-11-03 20:47:289604
1
-
原创 求两无序不重复数组的交集
求两无序不重复数组的交集 //输入:a[]={5,7,8,9,1,2,3 }; b[]={2, 8,10,4,6,7}; //输出:{2,7,8} [思路1]: 判断a数组元素值的元素是否在b中,是则输出之。 时间复杂度:O(n2) void cmpInterSection(int a[], int b[], int m, int n) { for(int i2012-10-23 07:49:416729
14