随笔分类 - Algorithm
算法总结
摘要:约瑟夫环 Java实现 一、背景介绍 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知 n 个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为 k 的人开始报数,数到 m 的那个人出圈;他的下一个人又从 1 开始报数,数到 m 的那个人又出圈;依此规律重复下去,直到剩余最后一个胜利者。
阅读全文
摘要:Java 实现 二叉树的 中序遍历 class Node { int val; Node left; Node right; Node(int val) { this.val = val; } } public class BinaryTree {/** * 中序遍历 * @param root 节
阅读全文
摘要:Java 实现 二叉树的 后序遍历 class Node { int val; Node left; Node right; Node(int val) { this.val = val; } } public class BinaryTree { /** * 后序遍历 * @param root
阅读全文
摘要:Java 实现 二叉树的 前序遍历 class Node { int val; Node left; Node right; Node(int val) { this.val = val; } } public class BinaryTree { /** * 前序遍历 * @param root
阅读全文
摘要:Java 实现 FIFO 缓存算法 一、什么是 FIFO FIFO(First In, First Out)是一种常见的数据结构,也叫做先进先出队列。它的特点是先进入队列的数据最先出队。 类似于现实中排队买东西的场景,先来的人先排队,先买完商品的人先离开。 在计算机领域,FIFO常用于缓存管理、进程
阅读全文
摘要:Prophet 的参数说明 Prophet是一个基于加性模型和非线性趋势的时间序列预测库。在使用Prophet进行预测时,需要设置一些参数来控制模型的行为。以下是Prophet中常用的一些参数: growth:确定时间序列的增长趋势,可以选择线性或非线性。默认是线性趋势。 seasonality_m
阅读全文
摘要:Prophet 时间序列预测算法 一、背景 时间序列预测是一种预测未来数据的方法,对于时间序列的分析,我们可以采用传统的统计学方法,例如 ARIMA、Exponential Smoothing等,这些方法通过分析过去的数据建立模型来预测未来的趋势,但是这些方法有一个限制就是必须满足某些假设条件,例如
阅读全文
摘要:Java 实现 LRU 缓存算法 一、什么是 LRU LRU(Least Recently Used,最近最少使用)是一种缓存算法,其核心思想是将最近最少使用的缓存项移除,以便为更常用的缓存项腾出空间。 在实际应用中,LRU 算法被广泛用于缓存和页面置换。 二、Java 实现 LRU 缓存算法 在
阅读全文
摘要:Java 语言实现 MD5 加密 背景说明 在实际项目中,为了安全性考虑,经常要求账号密码是以加密后的密文形式,保存到数据库中。 这样,即使有人获取到了数据库中的密文密码,也不知道明文密码信息是什么,从而防止系统被恶意访问。 密码加密有很多种方式,比如:Base64,DSA,RSA,MD5,SHA1
阅读全文
摘要:Java语言实现 Base64 加密 & 解密 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。 Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。 采用Base64编码具有不可读性,需
阅读全文