随笔分类 - 算法
算法实现
摘要:背景 每张报表有个截止上报时间,截止时间的计算稍微复杂,下面记录一下自己的写作成果。当月月报截止时间下月xx号,当季季报截止时间下季第一个月。。。 数据结构 public enum ReportFrequencyEnum { YEAR("year", "年"), MONTH("month", "月"
阅读全文
摘要:背景 异步树展开如果要实现展开回调比较困难,因为展开的过程是异步的。 前端:js引擎虽然是单线程执行,但是操作ui的线程是单独的,树的展开过程,就经历了js引擎线程+ui线程的过程,展开代码和展开回调的代码在不同时机执行的,本质上就是异步的。 展开回调的实现 展开回调的实现困难点在于判断展开结束的时
阅读全文
摘要:背景 对外服务的接口为了安全起见,往往需要进行相应的安全处理:数据加密传输和身份认证。数据加密传输有对称加密和非对称加密两种,为了更加安全起见采用非对称加密比较好些,身份认证则采用数字签名可以实现。 非对称加密缺点:加解密速度慢、RSA有最大长度要求。 方案一 仅采用非对称加密 RSA对内容长度的要
阅读全文
摘要:结果 构造的树为 Tree001 / \ Tree002 Tree003 / Tree004 递归方式遍历一棵树 第1次要遍历的tree为:Tree{nodeId='001', nodeName='根结点'} 001:根结点 第2次要遍历的tree为:Tree{nodeId='002', nodeN
阅读全文
摘要:最近面了阿里的外包吧,居然也要在线敲代码了,那叫一个紧张啊。题目就是实现一个LRU算法的缓存。外包居然要求也这么高了,哎。还好,LRU是我大学老师布置的一道题目,当然我用C语言实现的,算法原理那是一清二楚,可是面试的时候就脑子一片空白了。好在,边敲代码,边思考,就慢慢想起来了,下面是我的代码。仅供参
阅读全文
摘要:程序中经常遇到随机送红包之类的情景,这个随机还得指定概率,比如10%的机率可以得到红包。那么java怎么实现一个简单的概率计算了,见如下例子: RandomUtils工具类是commons-lang3包里面的 如果要在某个数字区间产生一个随机数,区间内部在不同的片段几率不同如何实现呢?经常有这样的场
阅读全文
摘要:package com.hzxc.chess.server.util; /** * Created by hdwang on 2018/3/19. * 版本比较工具类 */ public class VersionCompareUtil { /** * 比较版本大小 * * 说明:支n位基础版本号+1位子版本号 * 示例:1.0.2>1....
阅读全文
摘要:* 改名流程* 1.数据库中有:原始名nickName0 和 重名后的名nickName 和名称后缀suffix三个字段* 2.登录的微信用户,用他现在的名字wxName,去数据库中查重复性,与nickName比较,存在同名用户,是自己就用新名字,不是自己找出同名数量计算新名字* 3.新名字检查重复
阅读全文
摘要:代码 运行结果 张三,男,1990年出生,2012年毕业于清华大学。cost time:65ms张三,男,1990年出生,2012年毕业于清华大学。cost time:161ms
阅读全文
摘要:1.代码 2.运行结果 组合结果:[1, 2, 3],[1, 2, 4],[1, 3, 4],[2, 3, 4],排列结果:[1, 2, 3],[1, 2, 4],[1, 3, 2],[1, 3, 4],[1, 4, 2],[1, 4, 3],[2, 1, 3],[2, 1, 4],[2, 3, 1
阅读全文
摘要:原理: 用数组存储数字,按照计算法则进行运算。 代码: 运行结果: 说明: 当数字的大小超过long类型的数值范围时,将无法对数值进行计算,所以必须实现一套算法。曾经上C语言程序设计时做的一套课程设计就是这个题目,当时苦于能力不足,写不起来。如今,用java写出来了加减运算,经过多次测试,准确无误。
阅读全文
摘要:突然想到一个很有意思的问题,就是怎么判断两个矩形是否重叠? 我想到的算法是,先计算不重叠情况,再取反即可! 不重叠情况 蓝色矩形在黑色矩形的四周,这就是不重叠的情况。转换成坐标就是,蓝色矩形的 Xmin>x2 || Xmax<x1 || Ymin>y2 || Ymax<y1 可得重叠公式为: !(X
阅读全文
摘要:几种排序算法(JAVA) 一、代码 package com.hdwang; import java.util.Arrays; /** * Created by admin on 2017/1/20. */ public class Sort { /** * 冒泡排序(最小数冒泡),写错了!应该是相邻
阅读全文
摘要:双色球机选算法java实现 一、代码 二、结果 07,09,12,21,28,32 1413,18,19,27,31,32 1201,02,05,16,19,25 1401,04,06,19,23,33 1609,10,11,16,28,33 10
阅读全文
摘要:问题:怎样找出某个集合的所有子集,怎样找出某个集合指定元素个数的所有子集? 思路:对集合中所有元素进行标记,0表示未选中,1表示选中。假如有一个集合有3个元素为 {1,2,3}, 则 000 表示一个都不选, 001表示选中数组中第一个元素1,010表示选中数组中第2个元素2,011表示选中数组中第
阅读全文
摘要:问题:从n个整数中找出y个整数,输出所有组合。 例如:1,2,3 这个集合找出2个整数,组合有:1,2; 1,3; 2,3 共三种情况 实现: 思路: 可以想象成彩票选球,例如双色球,从33个球中选择6个球出来,第一次有33种可能,第二次有32种可能....,举个简单例子,从1,2,3这个集合中选出
阅读全文