上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 17 下一页
摘要: 题目 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) 编辑
摘要: 给定一个二维平面及平面上的 N 个点列表Points,其中第i个点的坐标为Points[i]=[Xi,Yi]。请找出一条直线,其通过的点的数目最多。 设穿过最多点的直线所穿过的全部点编号从小到大排序的列表为S,你仅需返回[S[0],S[1]]作为答案,若有多条直线穿过了相同数量的点,则选择S[0]值 阅读全文
posted @ 2020-11-15 20:13 lippon 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 leetcode 解题思路:如果这个数的各个位是递增的,那么直接从最后面开始移除一定就是最最小的;如果这个数的位值不是底层的,那么,尽量移除高位的逆序数字。如果最后变成递增了之后,k还有的剩,就再从后面移除大的 阅读全文
posted @ 2020-11-15 14:57 lippon 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。 leetcode 解题思路:迭代模拟每个情况下,概率的累加值。 分成三重循环: 第一层循环 阅读全文
posted @ 2020-11-15 14:14 lippon 阅读(300) 评论(0) 推荐(0) 编辑
摘要: ConcurrentHashMap 为什么需要ConcurrentHashMap HashMap线程不安全,因为HashMap的Entry是以链表的形式存储的,如果多线程操作可能会形成环,那样就会死循环。HashTable效率低,利synchronized保证线程安全,同时只有一个线程访问其同步方法 阅读全文
posted @ 2020-11-15 11:13 lippon 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。 解题思路:利用与或符号,模拟位的加法与进位。 位的异或就是当前位的加法,但是没有办法算进位,所以,需要通过位与和左移来算进位,如果两个都是1,那么进位才是1。 为什么负数也能适用呢? 以 9 + (- 阅读全文
posted @ 2020-11-14 20:52 lippon 阅读(89) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 17 下一页