摘要: 二叉树最近公共祖先的定义为:“对于二叉树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大,一个节点也可以是它自己的祖先。 在讨论二叉树的最近公共祖先之前,其实可以先讨论一下二叉搜索树的最近公共祖先。显然我们可以利用二叉搜索树的性质进行解决。 阅读全文
posted @ 2019-11-08 12:40 小小小小的我 阅读(428) 评论(0) 推荐(0) 编辑
摘要: javaCompiler简单来说就是一个用来调用java语言编译器的接口,我们使用它可以实现对其他路径下或者远程代码的编译。 显然我们可以实现这样一种操作,将一串符合java语法的字符串写入一个java文件中。然后利用javaCompiler编译此文件。最后通过 反射的方法实现对此文件的运行(onl 阅读全文
posted @ 2019-11-07 14:24 小小小小的我 阅读(3170) 评论(0) 推荐(1) 编辑
摘要: 自定义类加载器其实就是通过继承classLoader类,并重写findClass方法来实现自定义类加载器的效果 import java.io.*; /** * 简单文件系统类加载器 * 通过输入类的全限定名在指定文件路径下加载class */ public class FileSystemClass 阅读全文
posted @ 2019-11-06 16:44 小小小小的我 阅读(176) 评论(1) 推荐(0) 编辑
摘要: 组合(Composition)表示的是部分整体的关系,比如一辆汽车和汽车零件的关系,如果没有这个汽车,也就不会有这辆汽车的零件,反之没有零件也就没有汽车。 聚合(Aggregation)表示的是has-a的关系,比如文具盒和文具盒里的文具,它们是相互独立的。 显然就关系的紧密程度来说,组合更加紧密。 阅读全文
posted @ 2019-11-06 14:46 小小小小的我 阅读(763) 评论(0) 推荐(0) 编辑
摘要: 拓扑排序,首先它是一种排序。不过是应用在有向无环图上,将图的结点按照某种规则排成一个线性队列。只不过排序的规则是 对于任意两个结点(u,v),如果他们之间存在边(u->v),那么u必须出现在v之前。 满足拓扑排序的一个有向无环图 那么按照上面的规则我们可以这样实现拓扑排序 1: 找到所有初始入度为0 阅读全文
posted @ 2019-11-06 09:49 小小小小的我 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 底层实现:map是使用红黑树实现的,其中的所有元素都是有序的,unordered_map是使用哈希表实现的,其中的所有元素是无序的 阅读全文
posted @ 2018-09-15 17:35 小小小小的我 阅读(278) 评论(0) 推荐(0) 编辑