![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 61
半湖思絮
IT
展开
-
java+js实现rsa+aes加密解密demo
参考链接文章看完就懂了,我稍做改动,就是ras加密解密使用动态生成的公、私钥总结起来就是说:rsa是非对称加密,通过公钥加密,私钥解密aes是对称加密,使用同一密钥进行加密和解密原理就是:// 客户端1.客户端随机产生16位的keyString key = AESUtil.generateKey();2.客户端对敏感信息加密String password = “123456”;String encryptPwd = AESUtil.encryptData(key, password);原创 2021-03-24 20:03:28 · 608 阅读 · 0 评论 -
数学基础:四、树的应用2(利用树结构存储字典表&深度优先搜索)(优化后:由数组改为Map)
直接上代码:public class Lesson12_1 { /** * @Description: 前缀树的结点 */ class TreeNode { public char label; // 结点的名称,在前缀树里是单个字母 public HashMap<Character, TreeNode> so...原创 2019-12-12 11:25:36 · 134 阅读 · 0 评论 -
数学基础:四、树的应用1(利用树结构存储字典表)(待优化)
作业题:https://time.geekbang.org/column/article/76481利用树结构存储字典表,这里没有学习下一节(下一节的实现肯定更加高效)这里只是用最简单的方法来实现(时间和空间复杂度都没有考虑)代码如下:public class Lesson11_1 { // 正则,只允许输入字母 String regex = "^[A-Za-z]+$";...原创 2019-12-11 16:42:11 · 139 阅读 · 0 评论 -
数学基础:三、动态规划2(求解凑齐钱的最小张数)
凑齐钱的最小张数概念:比如只有2块、3块和5块钱若干,问凑齐100块钱最小需要几张钱能凑齐?(20张5块的,所以是20张)前面一篇求解编辑距离时,有现成的状态转移方程,可是这种凑齐面值的没有现成的公式,只能自己去推导。当然我们可以利用求余数求解,凑齐98块,需要98/5=19…3,所以为19张5块+1张3块(一共20张)但这个可能用余数可能更方便,但对于动态归划方法,可能是个思路...原创 2019-12-11 09:46:34 · 366 阅读 · 1 评论 -
数学基础:三、动态规划1(求解编辑距离)
编辑距离的概念,百度一下你就知道。也有很多文章有所介绍https://blog.csdn.net/chichoxian/article/details/53944188做动态规划的题就是根据表格,找出规律,推导出状态转移方程比如编辑距离的状态转移方程如下:d[i+1, j+1] = min(d[i, j+1] + 1, d[i+1, j] + 1, d[i, j] + r(i, j))下...原创 2019-12-11 09:18:01 · 188 阅读 · 0 评论 -
数学基础:二、组合算法(递归)
组合算法也是使用递归算法产生组合结果public class Lesson8_1 { /** * @Description 组合算法 * @param has 已经选中要组合的数据 * @param rest 剩余未(待)组合的数据 * @param n 要选出的个数 * @param resultList 组合结果 */ ...原创 2019-12-10 15:40:45 · 300 阅读 · 0 评论 -
数学基础:一、排列算法(递归)
排列采用递归的方式进行,算法如下:public class Lesson7_2 { /** * @param rest-目前未排列的数据,has-保存已经排列的数据及其顺序 * @return void * @Description: 使用函数的递归(嵌套)调用,找出所有可能的排列顺序 */ public static void permu...原创 2019-12-10 14:41:00 · 319 阅读 · 0 评论 -
KMP算法(java)
KMP算法是在字符串M中查找是否包含字符串N,存在返回字符串M匹配的字符首位置,将复杂度O(mn)降为O(m+n)要看对KMP算法的理解,请参考字符串匹配的KMP算法要看其中对匹配表的理解,请参考 KMP算法最浅显理解——一看就明白 下面是基于算法整理的Java代码:public class KMP { private static int[] getNext(Stri原创 2017-10-16 14:28:25 · 227 阅读 · 0 评论 -
java 大数据比较两个list集合的差值
有这么个场景,每天需要定时任务插入增量数据。如果通过接口获取的直接根据时间过滤,那么就能直接就可以插入库中。但有时获取到的并不是增量数据,比如微信公众号获取关注者列表时,获取到的是全量数据,这样每天就得将全量数据与库中进行比较,只有库中不存在数据才进行插入。这就有了两个list比较差值的问题。以前在处理该问题时,会遍历全量中的list,然后判断每个对象是否已在数中存在,如果不存在就放到一个临时...原创 2018-12-24 15:47:26 · 12131 阅读 · 1 评论