1 题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 2 思路和方法 深度优先搜索,每次得到左右 ...
分类:
其他好文 时间:
2019-08-28 01:28:00
阅读次数:
87
【问题】输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 【思路】递归解法:一般和深度有关的我们都可以使用dfs算法,然后使用一个res用于记录深度,每次递归到叶节点,将res和max进行比较,将最大的值存入max变量中,结束递 ...
分类:
其他好文 时间:
2019-08-20 22:28:43
阅读次数:
93
二叉树递归相关题目的时间复杂度基本上都是O(n) = 一共有n个点 + 每个点的时间复杂度(1) 而二叉树分治法最坏的时间复杂度为O(n^2) 时间复杂度:T(n) = 2T(n/2) + O(1) = O(n) Merge Sort, Quick Sort: T(n) = 2T(n/2) + O( ...
分类:
其他好文 时间:
2019-08-20 18:29:33
阅读次数:
90
bzoj luogu 题意可能会很绕 一句话:基环树的直径。 求直径: 对于环上每一个点记录其向它的子树最长路径为$dp_x$ 之后记录环上边长前缀和$ns_i$ dp值为$max_{i,j}dp[i]+sum[i]+dp[j]-sum[j]$ $dp[j]-sum[j]$提出来进单调队列。 O(n ...
分类:
其他好文 时间:
2019-08-10 21:03:02
阅读次数:
129
红黑树的定义比较简单,无非是在插入和删除的过程中自平衡规则多了一些,不过再多也只是个位数而已 Linux虚拟内存管理,Java中的TreeMap和TreeSet,以及JDK1.8之后的HashMap也有用到红黑树数据结构 红黑树是一种 自平衡 的二叉树,所谓的自平衡是指在插入和删除的过程中,红黑树会 ...
分类:
其他好文 时间:
2019-08-04 01:18:16
阅读次数:
116
最长路径:这个路径走完所有活动肯定都走完,有些活动是正正好好走完(极限掐秒算准deadline),相对于任务本身的周期。最短时间:最长的一个子活动需要三十天,这个时候其他的也好了,但是如果可以你可以给这个总活动一年时间去做(甚至是无限的),所以说是相对宏观时间下的最短时间。图的最长(不得不花这么长时 ...
分类:
其他好文 时间:
2019-07-26 19:07:05
阅读次数:
95
1、题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 2、代码实现 ...
分类:
其他好文 时间:
2019-07-14 09:31:09
阅读次数:
111
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 算法:递归即可。 ...
分类:
其他好文 时间:
2019-07-10 23:02:10
阅读次数:
109
题意及思路:http://ydc.blog.uoj.ac/blog/12 在求出树的直径的中心后,以它为根,对于除根以外的所有子树,求出子树中的最大深度,以及多个点的最大深度的lca,因为每个点的最长路径一定经过根,所以找到最大深度的子树,然后在这个点和最大深度的lca上树上差分一下就好了。注意,此 ...
分类:
其他好文 时间:
2019-06-10 21:08:02
阅读次数:
200
树的直径的模板题 我们存图以后,对这张图(树)进行一次dfs,定义sum1表示从当前节点向他的儿子走的最长路径是多少,sum2表示次长路径是多少。我们每次先用当前路径的长度+当前路径前往的节点的sum1更新当前节点的sum2,如果更新后sum2大于sum1,那么我们交换他们的数值,不难发现这样是正确 ...
分类:
其他好文 时间:
2019-06-01 21:28:03
阅读次数:
110