题目大意:给定n个数,求这n个数两两异或的值中的前k小 首先我们对所有数字建立二进制Trie树,可以利用Trie树上的size域查询出一个数与其它数异或值的第k小 然后我们维护一个堆,将所有数与其它异或值的第2小加入堆(…
Java实现查找树(BST,AVL,BTree,Trie)
BST 二叉排序树是一种非常简单的排序树(或者说查找树) 包括两种操作 添加 添加的元素永远是叶子节点 删除 叶子节点,直接删除 非叶子节点 2.1. 只有左子树或者只有右子树,直接用左子树或者右子树代替待删除节点 2.…
B树和B+树(非常重要)
B树,又称为多路平衡查找树,B树中所有结点的孩子结点树的最大值称为B树的阶,通常用m表示 一棵m阶B树满足以下性质: 1 树中每个结点至多有m棵子树(至多含有m-1个关键字) 2 若根结…
贪心算法——区间找点问题
找点 时间限制:2000 ms | 内存限制:65535 KB 难度:2 描述 上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点。但是这几天LYH太忙了,你们帮帮他吗? 输入 多组测试…
贪心算法最简单的硬币找钱问题
题目描述: 有1,5,10,50,100,500的硬币各C1,C5,C10,C50,C100,C500枚,现在要用这些硬币来支付A元,最少需要多少枚硬币。 解题思路: 贪心算法,竟可能多的使用面值最大的硬币…
贪心算法--钱币找零问题
问题描述: 假设1元、5元、10元、20元、50元、100元的纸币分别有c0, c1, c2, c3, c4, c5张。现在要用这些钱来支付K元,至少要用多少张纸币?用贪心算法的思想。每一次都取尽可能币值大的纸币: 源代…
POJ1088 滑雪【动态规划】
题目: Description Michael喜欢滑雪这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道在一个区域中最…
获取多条最短路径的Dijkstra算法
Dijkstra算法是单源最短路径经典算法,一般用于所有边的权为非负数的情况下,有向图和无向图均可。 效率方面:存储图模型的数据结构有很多种,使用邻接矩阵的话其空间复杂度都为O(E^2)。而如果是稀疏图,使用邻接链表更划…
Dijkstra算法 java实现
import java.util.HashMap; import java.util.HashSet; import java.util.Map.Entry; /** * * Dijkstra算法 * 适用范围:没有权值…
POJ 1860 Bellman_Ford
Currency Exchange Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 21092 Accepted: 7554 Description …
Spring Cache源码分析
Spring Cache源码分析 2018-05-05 10:55:20 星期六 1. @EnableCaching 我们通过在配置类中使用@EnableCaching开启Spring的缓存功能。 @EnableCach…
spring-aop-ProxyFactory 源码分析
spring 提供的编程式aop实现,即通过 ProxyFactory类完成的。 另外AnnotationAwareAspectJAutoProxyCreator BeanNameAutoProxyCreator Def…