摘要: 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 阅读全文
posted @ 2020-11-16 20:09 lippon 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 给定一个带权有向图,计算任意两结点间的最短路径。 算法思想:遍历每个点到另外点的距离。三层循环,第一层枚举中间点,第二层和第三层枚举起点和终点。 public static void main() { int N = 1010, M = 2000010, INF = 1000000000; int[ 阅读全文
posted @ 2020-11-16 19:18 lippon 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 题目 n个村庄间架设通信线路,每个村庄间的距离不同,如何架设最节省开销? Kruskal算法 特点 适用于稀疏图,时间复杂度 是nlogn的。 核心思想 从小到大选取不会产生环的边。 代码实现 代码中需要采用并查集的方法检测是否有环。 static class Edge { int a, b, va 阅读全文
posted @ 2020-11-16 16:44 lippon 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 什么是霍夫曼树 霍夫曼树是二叉树的一种特殊形式,又称为最优二叉树,其主要作用在于数据压缩和编码长度的优化。 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为霍夫曼树(Huffman Tree)。 霍夫曼树的构造思路 若要使得带权外路径长度最小, 阅读全文
posted @ 2020-11-16 16:02 lippon 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a",“go"是"b”),该字符串也匹配像"a"、"ab"和"b"这样的模式。但需注意"a"和"b 阅读全文
posted @ 2020-11-16 15:30 lippon 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 什么是线程安全 当多个线程同时访问一个对象的时候,不需要考虑什么额外的操作就能获取正确的值,就是线程安全的。 线程安全的程度 1.不可变 不可变的对象一定是线程安全的,因为值始终只有一个。 final,这种安全是最直接最纯粹的。 2.绝对线程安全 不管运行时环境如何,调用者都不需要任何额外的同步措施 阅读全文
posted @ 2020-11-16 10:33 lippon 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 即时编译器 Java程序最初都是通过解释器进行执行,当发现某个方法或者代码块被运行得非常频繁,这些代码就被认为是热点代码,为了提高这些代码得运行效率,虚拟机会把热点代码编译成本地机器码,并进行优化,运行时完成这个任务的后端编译器被称为即时编译器。 解释器与编译器 主流Java虚拟机内部同时包含解释器 阅读全文
posted @ 2020-11-16 09:37 lippon 阅读(91) 评论(0) 推荐(0) 编辑