一、思维导图 二、重要概念 1.DFS 时间复杂度为 O(n+e) 。 2.BFS 时间复杂度为 O(n+e) 。 3.最小生成树 1)Prim算法 时间复杂度为 O(n n) ,所以更适用于 稠密图 。 2) Kruskal算法 时间复杂度为 O(elog2e) ,所以更适用于 稀疏图 。 4.最 ...
分类:
其他好文 时间:
2020-05-17 21:45:57
阅读次数:
110
题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路 https://www.nowcoder.com/questionTerminal/435fb86331474282a3499955f0a41e8b?f=disc ...
分类:
其他好文 时间:
2020-04-29 17:58:37
阅读次数:
49
一、概念 在一棵树中找到距离根节点最远的两个点,这两个点之间的距离为树的直径 二、算法 1.求法:求树的直径的方法就是在树上任选一点u,求距离点u最远的点y,再求距离点y最远的点s,点y到点s的距离即为树的直径。 2.证明:假设此树的最长路径是从s到t,我们选择的点为u。反证法:假设搜到的点是v。 ...
分类:
其他好文 时间:
2020-04-23 23:32:16
阅读次数:
117
$T1$ 题目描述 给定一棵 $n$ 个节点的树,求前 $m$ 条最长路径的长度。 数据范围 序号 $n$ $m$ 数据类型 1 10 3 暴力 2 233 23333 暴力 3 2000 300000 暴力 4 2000 300000 暴力 5 50000 1 随机生成 6 7798 17798 ...
分类:
其他好文 时间:
2020-04-20 21:41:53
阅读次数:
62
1.数字在排序数组中出现的次数 问题描述: 统计一个数字在排序数组中出现的次数。 2.二叉树的深度 问题描述: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 3.平衡二叉树 问题描述: 输入一棵二叉树,判断该二叉树是否是平衡 ...
分类:
其他好文 时间:
2020-04-17 23:52:40
阅读次数:
61
题目描述 :输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 解法 1: 递归 递归的写法非常直观。对于一棵二叉树来说,它的高度等于左右子树的高度最大值,加上 1。 代码实现如下: 解法 2: 层序遍历 按照二叉树的“层 ...
分类:
编程语言 时间:
2020-04-09 10:33:52
阅读次数:
74
数据结构 树 首先回忆一下树的术语 1. 节点的度:一个节点含有的子树的个数称为该节点的树 2. 树的度:一棵树中,最大的节点的度称为树的度 3. 节点的层次:从根开始定义,根为第一层(有时候定义为第0层) 4. 高度:对于任意节点n,n的高度为n到一片树叶的最长路径的长度,所有树叶的高度为0 树的 ...
分类:
其他好文 时间:
2020-04-09 00:20:49
阅读次数:
71
之前第5节课留了个疑问,是关于“时间t被安排进R”的时间复杂度能不能为Ο(log2n)?”和BST时间复杂度Ο(h)的关系。第6节对此继续了深入的探讨。首先我们知道BST的h是指树的高,即从根到叶子结点最长路径的长度。但由于树结构不同平衡情况,高h的结果也不一样,如下图所示: 一、结点的高 由此可以 ...
分类:
编程语言 时间:
2020-04-06 15:25:51
阅读次数:
72
两种方式 一:直接排序就行了。对于字符串“>、<、==、+”这些运算符都被重载了,可以直接用。 #include <iostream>using namespace std;#include <string> int main(){ int num; cin >> num; string s[100 ...
分类:
编程语言 时间:
2020-04-03 21:59:35
阅读次数:
85
A: 二叉树的最大深度 题目描述 二叉树是指每个结点最多有两个子树的树结构,这两个子树通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树的结点层定义为:根结点的层定义为 1 ,根的孩子为第二层结点,依此类推;二叉树的深度定义为:树中最大的结点层。给 ...
分类:
其他好文 时间:
2020-03-21 09:26:17
阅读次数:
104