j解决这道题我采用的思路是深度优先遍历的方法 类似于题目给出的样例的数组 9 9 4 6 6 8 2 1 1 然后对二维数组中的每个元素进行遍历,一次将他们作为序列的开头,找出这其中的最长的序列的长度就是本题的解了。 由于序列必须递增,并且可以从上下左右任意的方向都行,我们再创建一个对应的二维数组, ...
分类:
其他好文 时间:
2020-07-28 10:18:42
阅读次数:
82
MRO:方法解析顺序,其实就是类的多继承时,查看这个类继承了拿个类 C3 算法:就是找到这个类的具体算法 mro案例: class A: pass class B(A): pass class C(A): pass class D(B, C): pass class E(C, A): pass cl ...
分类:
编程语言 时间:
2020-07-27 09:25:17
阅读次数:
85
题目链接 https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/ 题解一 递归解法 我写的 说明详见注释 // Problem: LeetCode 111 // URL: https://leetcode-cn.com/probl ...
分类:
其他好文 时间:
2020-07-26 19:32:58
阅读次数:
60
1?? 利用拓扑排序算法,在拓扑排序算法结束后,如果还有顶点没有输出,则说明剩下这些结点都还有前驱,则它们构成一个有向回路 2?? 设有向图具有n个顶点,若该图的边数e≥n,则该图一定有一个闭合的环 3?? 设有向图具有n个顶点,若该图的每个顶点的出度至少为1,入度也至少为1,则图中一定有回路 4? ...
分类:
其他好文 时间:
2020-07-23 15:47:10
阅读次数:
147
一、二叉树的深度优先遍历 对于一颗二叉树,深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。 那么深度遍历有重要的三种方法。这三种方式常被用于访问树的节点,它们之间的不同在于访问每个节点的次序不同。这三种遍历分别叫做先序遍历(preorder_t ...
分类:
编程语言 时间:
2020-07-04 01:10:49
阅读次数:
70
一、技术总结 这题是关于DFS即深度优先遍历算法,核心是掌握深度遍历算法的思想,也就是不断往下一个结点进行查找,如果查找不到,那么就返回; 关键点一个是递归边界,也就是查找不到的条件,以及能够往下查找的路有多少条; 二、参考代码 #include<iostream> #include<vector> ...
分类:
其他好文 时间:
2020-07-02 21:44:59
阅读次数:
55
图的遍历DFS 与树的深度优先遍历之间的联系 树的深度优先遍历分为:先根,后根 //树的先根遍历 void PreOrder(TreeNode *R){ if(R!=NULL){ visit(R); //访问根节点 while(R还有下一个子树T) PreOrder(T); //先根遍历下一棵子树 ...
分类:
其他好文 时间:
2020-06-30 14:54:31
阅读次数:
55
图的遍历BFS 广度优先遍历 深度优先遍历 可以进行标记 树的广度优先遍历,我们用了辅助的队列 bool visited[MAX_VERTEX_NUM] //访问标记数组 //广度优先遍历 void BFS(Graph G,int v){ //从顶点v出发,广度优先遍历图G visit(v); // ...
分类:
其他好文 时间:
2020-06-30 14:51:53
阅读次数:
64
1 解题思路 1 使用深度优先遍历 2 设置两个变量:一个变量是当前的深度;另一个变量是最大深度 3 每进入下一层,当前深度+1;每返回上一层,当前深度-1。 4 当一个节点的左右节点都为空的话,比较一下当前深度与最大深度,更新最大深度 如下图所示,红色数字表示的是当前节点二叉树的深度。 2 代码 ...
分类:
其他好文 时间:
2020-06-26 23:54:20
阅读次数:
101
54:图的深度优先遍历与广度优先遍历 时间限制: 20000ms 内存限制: 131072kB 描述 给出一个无向图顶点和边的信息,输出这个无向图的深度优先遍历序列和广度优先遍历序列。从一个顶点出发如果有2个以上的顶点可以访问时,我们约定先访问编号大的那个顶点。示例输入对应的图如下图所示: 输入 输 ...
分类:
编程语言 时间:
2020-06-25 21:51:03
阅读次数:
80