数据结构与算法
文章平均质量分 85
骚年编程去
这个作者很懒,什么都没留下…
展开
-
Hashmap在JDK8中的提升
HashMap使用key的hashCode()和equals()方法来将值划分到不同的桶里。桶的数量通常要比map中的记录的数量要稍大,这样 每个桶包括的值会比较少(最好是一个)。当通过key进行查找时,我们可以在常数时间内迅速定位到某个桶(使用hashCode()对桶的数量进行取模) 以及要找的对象。这些东西你应该都已经知道了。你可能还知道哈希碰撞会对hashMap的性能带来灾难性的影响原创 2014-11-11 11:39:36 · 3989 阅读 · 1 评论 -
青蛙跳台阶问题
题目:一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。我的思路:最开始我的思路是把这个看成是一个数学问题,n=i*1+k*2先把所有可能满足这个公式的i和k求出来。然后在对i和k做排列组合。很明显i的范围应该是0public int JumpFloor(int target) { int step = 0; for (int原创 2015-04-07 21:59:11 · 5007 阅读 · 0 评论 -
分析LinkedHashMap源码的LRU实现
一、前言前段时间研究了memcached,而且操作系统的课程也刚刚完成,在两个里面多次出现LRU(last recently used最近最少使用)算法,虽然思想很简单。但是还是值得我们研究,无意间在看LinkedHashMap的源码的时候看见貌似这个类里面有默认的LRU实现。我们现在就来分析一下他的源代码 /** * Returns true if this map shoul原创 2015-02-04 17:05:27 · 1129 阅读 · 0 评论 -
博弈论-美女的硬币
一位陌生美女主动过来和你搭讪,并要求和你一起玩个游戏。美女提议:“让我们各自亮出硬币的一面,或正或反。如果我们都是正面,那么我给你3元,如果我们都是反面,我给你1元,剩下的情况你给我2元就可以了。”听起来不错的提议,也很公平。如果我是男性,无论如何我是要玩的,不过经济学考虑就是另外一回事了,这个游戏真的够公平吗?假设我们出正面的概率是x,反面的概率是1-x。为了使利益最大化,应该在原创 2015-04-12 13:39:40 · 11489 阅读 · 2 评论