数据结构算法
高低调
这个作者很懒,什么都没留下…
展开
-
hash算法 (hashmap 实现原理)
Hash ,一般翻译做“ 散列” ,也有直接音译为“ 哈希” 的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不 同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。HAS转载 2015-07-20 15:18:39 · 346 阅读 · 0 评论 -
android LruCache 原理 以及 源代码解析
使用LRU(Least recently used,最近最少使用)算法缓存技术能大大提升程序性能。原理:1. 新数据插入到链表头部;2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部;3. 当缓存内容超过指定大小的时候,将链表尾部的数据丢弃。了解原理后,我们看下android中LruCache 的源代码实现。public LruCa原创 2015-12-08 16:47:08 · 452 阅读 · 0 评论 -
使用异或运算 不借助临时变量交换两个数
通常交换两个变量需借助一个临时变量,如:int temp;temp=aa=b;b=temp;使用异或可以不借助临时变量交换两个数:a = a ^ b;b = a ^ b;a = a ^ b;这是用了异或的自反性性质做到的:a^ b ^ b = a ^ 0 = a具体推导过程:原创 2017-04-10 16:41:28 · 474 阅读 · 0 评论 -
异或运用 算法题 缺失的数
题目:给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数。public int findMissing(int[] nums) { if (nums == null || nums.length == 0) { return 0; } int result_total = 0;原创 2017-04-10 15:23:41 · 1410 阅读 · 0 评论 -
最大子数组
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。样例给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6public int maxSubArray(int[] nums) { if (nums == null || nums.length == 0) return 0;原创 2017-04-13 17:30:11 · 460 阅读 · 3 评论 -
AES加密算法原理及java android实现
AES当今最流行的对称加密算法之一,是DES的替代者。密钥是AES算法实现加密和解密的根本。对称加密算法之所以对称,是因为这类算法对明文的加密和解密需要使用同一个密钥。AES支持三种长度的密钥:128位,192位,256位平时大家所说的AES128,AES192,AES256,实际上就是指的AES算法对不同长度密钥的使用。他们本质的区别是加密处理轮数不同。AES加密原理:分组加密...转载 2019-05-30 14:15:31 · 1477 阅读 · 0 评论