算法
nayi_224
这个作者很懒,什么都没留下…
展开
-
sql跳过休息日增加/减少时间
文章目录mysql7使用函数解决方案函数给出开始时间和增/减的时间,求出跳过休息日的结束时间。例:已知2020年9、10月日历若开始时间为2020-10-09,增加1天,则结束时间应为2020-10-09若开始时间为2020-10-09,增加2天,则结束时间应为2020-10-10若开始时间为2020-10-01,增加1天,则结束时间应为2020-10-09若开始时间为2020-10-01,减少2天,则结束时间应为2020-09-29需要注意的是这种需求是不可逆的,因为节假日可以作为开始原创 2020-10-15 11:04:30 · 773 阅读 · 0 评论 -
java 找出重复的数字
这是一个经典的题型,比如:有1亿个数字,找出其中重复的。最直观的写法就是双重循环了,但是效率过低。再就是先排序再遍历,又总感觉不太直接。后来偶然查到BitSet有相应的api来处理这个问题,查了下源码,还挺有意思的,记录一下。直接上代码public class Test05 { public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = new int[10000000];原创 2020-07-15 11:45:18 · 2852 阅读 · 0 评论 -
哈夫曼树 java实现构建、查找、生成哈夫曼编码
哈夫曼树,又称最优二叉树。特点是每一个(叶子)节点都有一个权值,可以认为代表的是这个点被查询的概率。哈夫曼树要求所有(叶子节点)权值*深度的和最短。为了说明方便,设节点的值与权值相等。哈夫曼树的构建通过观察可以看出,权值小的在下,大的在上。由此可以很容易理解构建的规则:将所有的节点(或者说是只有根节点的子树)放入一个集合,每次取出两个最小的节点合成一个新子树并放入集合,循环,直到集合中只剩最后一个元素。jdk已经提供了优先队列的实现,所以实现起来非常简单创建测试代码,创建节点类import原创 2020-05-27 17:21:17 · 695 阅读 · 1 评论 -
kmp算法讲解 java
kmp算法本质上就是一个字符串匹配的算法。它的作用与java中String类的indexOf方法是一样的,就是返回一个字符串(以下简称N串)在另一个字符串(以下简称M串)中的位置,只不过在复杂度上进行了一些优化。暴力匹配算法简单来说,就是通过双重循环来遍历所有情况,以进行匹配。相信所有正在学习kmp算法的人早已掌握这种方法了,我也不再多说,只给出一种解法以供参考。public class ...原创 2019-10-12 09:57:42 · 554 阅读 · 0 评论