题目
输入一颗二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的结点形成树的一条路径,最长路径的长度为树的深度。
思路
简化一下题目,思考一个节点的时候二叉树的深度为 1,因为左右子树都为0;
2个节点的时候二叉树深度为 2,左右子树的深度最大值加 1;
3个节点分两种情况:
4 3
/ \ ...
分类:
其他好文 时间:
2015-08-21 00:14:55
阅读次数:
229
ComputerTime Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4440Accepted Submission(s): 2236Problem De...
分类:
其他好文 时间:
2015-08-18 18:41:19
阅读次数:
108
树形dp,意思就是在树上的dp, 看了看紫书,讲了三个大点把,一个是树的最大独立集,另外一个是树的重心,最后一个是树的最长路径。给的三个例题,下面就从例题说起第一个:工人的请愿书 uva 12186这个题目给定一个公司的树状结构,每个员工都有唯一的一个直属上司,老板编号为0,员工1-n,只有下一级的...
分类:
其他好文 时间:
2015-08-14 21:24:06
阅读次数:
219
题意:
中文题,就是在所有的点中找一个点作为起点,然后叫你找出从起点开始的最长路径是多少。
这里高度必须严格递减。
思路:
一开始我碰到这题时,没有思路,是看题解写的。
但是今天我回头再去看时,发现自己能够独立写出来了,而且和上次的方法不一样。也许这就是进步吧!
其实就是一个递推型动归,如果理解了上一题,那么这题也好做了。
这是第一次写的:
#include
#include
#i...
分类:
其他好文 时间:
2015-08-12 21:48:59
阅读次数:
483
红黑树是一种自平衡二叉查找树,具有在最坏情况下查找、插入、删除O(log2n)的复杂度。红黑树中从根节点到任意一叶子节点的最长路径不超过最短路径的两倍,因此是一种近似平衡的二叉树。节点信息红黑树的节点具有如下信息:struct RBNode{ int data; //数据 int color; .....
分类:
其他好文 时间:
2015-08-11 18:37:13
阅读次数:
189
题目:输入一棵二叉树的根节点,求该数的深度。从根节点到叶结点依次进过的结点(含根,叶结点)形成树的一条路径,最长路径的长度为树的深度。
例如,如下图的二叉树的深度为4,因为它从根节点到叶结点的最长的路径包含4个结点(从根结点1开始,经过2和结点5,最终到达叶结点7)
我们可以从另一种角度来理解树的深度。如果一棵树只有一个结点,它的深度为1,如果根节点只有左子树而没有右子树,那么树的深度...
分类:
编程语言 时间:
2015-08-10 09:27:21
阅读次数:
175
100*100的矩阵,如果裸dfs很可能超时,所以可以用记忆化搜索的方式,dp[i][j]表示当前到达[i,j]的最长路径,在dfs的同时,更新dp[i][j]。思路总体来说很简单。...
分类:
其他好文 时间:
2015-07-27 00:23:41
阅读次数:
131
#ifndef LONG_PATH_H#define LONG_PATH_H#include#include#define MAX 65535int graphPath_longest(int (*Graph)[5],int Length,int origin,int destin ); void ...
分类:
其他好文 时间:
2015-07-17 20:54:10
阅读次数:
212
上一篇文章即是对这一主题的变化。并给出了一个非递归溶液。我给出原题的一种递归解法。将会看到,现比較上篇博文。今天给出的递归解法的代码实现是相当简洁的。问题描写叙述:假设我们把二叉树看成一个图。父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序。求一棵二叉树中相距最远...
分类:
其他好文 时间:
2015-07-15 10:55:51
阅读次数:
98
POJ 1201 Intervals(差分约束+spfa 求最长路径)...
分类:
其他好文 时间:
2015-07-12 11:14:06
阅读次数:
149