- 博客(8)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 二叉树的两个节点之间最远的距离
题目:求二叉树的两个节点之间最远的距离。package java_exam;/** * 题目:求二叉树的两个节点之间最远的距离。 * @author ShaoCheng * @version 1.0 2015-9-28 *//* * 计算一个二叉树的最大距离有两个情况: * 情况A: 路径经过左子树的最深节点,通过根节点,再到右子树的最深节点。 * 情况B: 路径不穿过根节点,而
2015-09-28 17:07:15 3441
原创 最长连续子数组和为0
题目找出最长的连续子数组,其和为0。分析穷举法:两次扫描数组把所有的和为0的子数组长度均找出,然后再选择最大的。时间复杂O(n2)O(n^2)。改进:给定一个数组如,1, 2, 3, 4, -1, -2, -4, -3, 1, 1,1,1,1,求出其累加和数组1,3,6,10,9,7,3,0,1,2,3,4,5。顺序扫描数组,遇到0记录其索引值index,那么长度为index-0+1。如果遇到非0,
2015-09-26 16:23:51 2127
原创 完全二叉树插入
题目:给一颗完全二叉树,要求插入一个节点后,依然是完全二叉树。 分析:利用完全二叉树的性质,找到要插入的位置,先判断左子树的最右结点与右子树的最右结点高度,如果相等,只需要插入到左子树即可,否则插入右子树。实现:/**题目:给完全二叉树插入一个节点,插完后保证还是完全二叉树 * @author ShaoCheng * @version 1.0 2015-9-24 */class TreeNo
2015-09-26 00:03:14 7286 8
原创 正整数分解质因子
输入正整数n,分解正整数n的质因子,并输出。 分析: 对n进行分解质因数,应先找到一个最小的质数k,是一个逐步分解的过程。因为我们知道任何n=2k1∗3k2∗5k3∗7k4...n=2^{k_1}*3^{k_2}*5^{k_3}*7^{k_4}...都可以分解成如下形式。 代码如下:递归实现循环实现import java.util.ArrayList;import java.util.
2015-09-22 23:40:50 1487
原创 硬币组合问题
题目假设我们有8种不同面值的硬币{1,2,5,10,20,50,100,200},用这些硬币组合够成一个给定的数值n。例如n=200,那么一种可能的组合方式为 200 = 3 * 1 + 1*2 + 1*5 + 2*20 + 1 * 50 + 1 * 100. 问总过有多少种可能的组合方式?原题 转载分析这道题目是非常经典的动态规划算法题。给定一个数值sum,假设我们有m种不同类型的硬币v1,v2,
2015-09-19 16:57:28 1723
原创 猴子分桃子问题
题目题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
2015-09-19 12:12:45 797 3
转载 【转】Google如何管理20亿行代码
《Wired》今天一篇文章谈到Google的代码量已达到20亿行,并简单介绍了Google是如何管理这些代码的。这20亿行代码,涉及搜索、Gmail、文档、地图、YouTube、Google+等绝大多数Google提供的服务,存储在“一个”代码仓库中,两万五千名Google工程师都可以访问——这可能是世界上最大的单一代码库。只有几个例外:涉及机要信息的代码,如PageRank算法,或者相对独立的项目
2015-09-19 11:55:42 605
原创 计数排序
原理通过统计各个元素出现次数,以决定元素的位置。应用场景适合元素值不大,且重复较多的情况。计数排序的精髓在于通过统计次数进行排序,相比于比较排序算法,性能更佳。当适用场景有限,比如对公司员工按年龄排序等。性能时间复杂度仅O(n),空间复杂度O(n)。代码 /* 非常巧妙的实现 */ public static void countSort(int a[]){ if(a
2015-09-17 23:47:59 498
redis设计与实现
2018-05-29
perl小白,谁能帮忙给个详细解释
2015-11-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人