算法之道
iteye_19903
这个作者很懒,什么都没留下…
展开
-
质因数分解及算法实现
每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。定义质因数(或质因子)在数论里是指能整除给定正整数的质数。两个没有共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。正整数的因数分解可将正整数表示为一连串的质因子相乘,质因子如重复可以指数表示...2014-03-14 20:00:54 · 3352 阅读 · 0 评论 -
常见的概率相关面试题
在笔记题中概率相关的数学题,也有部分编程题,出现的还是挺多的。概率在生活中的应用较多,同时也可以综合考查面试者的思维能力、应变能力、数学能力。在这里整理了一些概率相关的笔试题和大家分享,此文不涉及编程题,都是一些和生活相关且很有趣的概率题。所有的分析都和背景颜色设置一样了,大家先思考,然后选中就可以看到分析了。题目1假设你参加了一个游戏节目,现在要从三个密封的箱子中选择一个。其中两个箱子...2014-03-30 22:14:44 · 646 阅读 · 0 评论 -
寻找二叉树两个节点的最低公共祖先
给定一棵树,同时给出树中的两个结点(n1和n2),求它们的最低公共祖先。也就是常见的LCA(Lowest Common Ancestor )问题。看下面的图就明白了: 方法一下面是一个简单的复杂度为 O(n) 的算法,解决LCA问题1) 找到从根到n1的路径,并存储在一个向量或数组中。2)找到从根到n2的路径,并存储在一个向量或数组中。3) 遍历这两条路径,直到遇到一个不同的...2014-04-09 22:56:32 · 248 阅读 · 0 评论 -
编程之美-阶乘末尾0的个数
这个题目是编程之美一书中给出的题目。给定一个整数N,那么N的阶乘N!末尾有多少个0? 比如:N=10,N!=3628800,N!的末尾有2个0。1) 递推考虑阶乘的计算很容易溢出,直接计算阶乘肯定不合适。而每次相乘是否会有新的0产生,只和前一个阶乘的最后一位有关。因此只记录前一个阶乘0的个数和最后一位,就可推出后面的。代码如下:01int countZer...2014-04-15 17:22:11 · 225 阅读 · 0 评论 -
二叉树非递归先序遍历
二叉树的先序遍历使用递归很简单,代码如下:void preOrder(TNode* root){if (root != NULL){Visit(root);preOrder(root->left);preOrder(root->right);}}先访问跟节点,然后访问左节点,再访问右节点。如果不用递归,那该怎么做呢?仔细看一下递归程序,就会发现,其实每次都是走树的左分支(le...2014-06-14 14:04:09 · 201 阅读 · 1 评论