算法
文章平均质量分 82
包含各种排序算法、背包算法、分治算法,面对面试,轻松拿下
魏小言
BAT资深工程师,Cloud Native 拥护者,敏捷实践者,坚守开发一线打磨工匠技艺的架构师。对基础架构和微服务有丰富的研究和实践。微信群请私信博主
展开
-
MsgPack/Json性能数据
MsgPack/Json性能数据对比MsgPack是一个高效的二进制序列化格式,像Json一样可以在各语言之间进行交换数据,都用来序列化存储数据。优势是在数据规模大时,效率比Json更高,占用资源更少;缺点是,二进制格式,不易查看数据。业界Rpc交互之间使用广泛:JD,Baidu…官网地址:http://pecl.php.net/package/msgpack下面做了样本实验,简单对比MsgPack于Json性能:实验数据「样本数据选取string类型,观察对比耗时、占比情况」:此样本库可得出原创 2021-05-01 17:05:59 · 1639 阅读 · 1 评论 -
红包拆包
<?php *产品角度: *1、活动中大都要求产出红包质量符合产品预期【定制红包分配比例、大小包数量、最小包基本金额,包内基本金额浮动比例等等等】,效果并非全随机,需满足定制化需求 *2、红包场景相对通用 * *技术角度: *1、提供对外通用接口,设计考虑扩展,复用 *2、满足定制化功能【包含可控红包 + 不可控红包】逻辑 * *基本思路: *总体金额产生规则:红包金额 = 基本金额 + 浮动金额 + 剩余金额 *逻辑包含两部分:可控红包 + 不可控红包 * *接口描述【通过原创 2020-09-22 14:19:35 · 153 阅读 · 0 评论 -
袋鼠过河问题
题目描述 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表袋鼠下一跳最多能够跳5米,如果为0,就会陷进去无法继续跳跃。河流一共N米宽,袋鼠初始位置就在第一个弹簧上面,要跳到最后一个弹簧之后就算过河了,给定每个弹簧的力量,求袋鼠最少需要多少跳能够到达原创 2017-08-27 16:34:59 · 1342 阅读 · 1 评论 -
酒店价格、集合、文件名称
/** * 题目描述 酒店房间的价格录入是通过时间段来录入的,比如10月1日至10月7日800元,10月8日至10月20日500元,请实现以下函数int[][] * merge(int[][] * dateRangePrices),输入是某个酒店多个日期段的价格,每个日期段(终止日期大于等于起始日期)和对应的价格使用长度为3的数组来表示,比如[0, * 19, 300], [10,原创 2017-09-07 09:18:55 · 396 阅读 · 0 评论 -
加密解密算法介绍
加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密)。加密技术的要点是加密算法,加密算法可以分为对称加密、不对称加密和不可逆加密三类算法。 对称加密算法 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若原创 2017-10-06 10:22:42 · 1418 阅读 · 0 评论 -
快排的递归与非递归
分治类型的算法,一般都存在递归解法和非递归解法两种,对于应用分治思想的快速排序算法,也给出两种实现。private static void Partition(int[] a,int low,int high){if(a===null||low>high||low<0||high<0)return ;int i=low;int j=high;int point=a[low];while(i<原创 2017-11-10 14:33:05 · 638 阅读 · 0 评论 -
LRU 缓存编程实现
感觉这个话题,包括代码已经烂大街了。不过写这个还是需要对HashMap系和链表的基础很了解的,最近重新练了练手,附上代码和注释吧。整体可以理解为是链表的结构-根据访问顺序调整节点节点的位置,但存储的时候是K_V的形式存储-添加查询删除的时候首先链表操作 然后在HashMap中添加查询删除-总体结构和LindedHashMap类似,异曲同工,但具体的区别还待继续学习研究, 不过一般都用的是Li...原创 2018-02-11 10:34:26 · 239 阅读 · 0 评论 -
DES加密算法的使用
最近项目在写工具类的时候用的加密解密算法是3DES,就总结一下DES-3DES-AES吧,按顺序来,先介绍下DES吧;DES:是对称算法的以一种(加密、解密过程是可逆的,并且使用的密钥是一致的),关于加密算法的介绍,对称、非对称具体哪些,什么场景,大家可以翻看我之前的博客;这里讲到加密解密算法,就简单说一下当下分组密码设计的两个原则:混淆(confusion)和扩散(diffusion),...原创 2018-01-30 00:21:54 · 1060 阅读 · 0 评论