摘要:参考: 《Java 并发实践》 李大狗大神的大作和源码非常值得分析阅读 1. 的`hashCode`:数据缓存在类变量中 字符串类维护了一个常量池—每当使用 创建对象,都会首先检查字符串是否在常量池中—有的话直接返回池中对象的实例引用,否则则创建一个对象返回 并将对象放进池中 。 没当调用 方法时,
阅读全文
摘要:原文地址: http://note.youdao.com/noteshare?id=1abbeb1deee85f0203001e9bc34f65b4 参考 "LRU算法" "dubbo cache" 一.基本介绍 1.1 常见缓存淘汰算法及其实现思路 对于缓存,常见淘汰算法有3: 1. : firs
阅读全文
摘要:所用特性 BST: 1. 左子树和右子树是BST的递归定义; 2. 如果节点数量相同,不论节点值如何,可以构造的BST个数相同; 问题描述 给n,求有多少个唯一的BST可以存放1 n这些数。 求解思路 "翻译" 问题可以以动态规划的方式解决。解释如下: 我们可以枚举数列中的每个数i作为root,此时
阅读全文
摘要:"31. Next Permutation" 问题 Implement next permutation排列, which rearranges重排列 numbers into the lexicographically next greater(下一个比较大的) permutation of nu
阅读全文
摘要:"1. Two Sum" 问题 一个数组中一定有两个数字和 ,求出这两个数字的下标。 思路 将数字一次存储在 中,然后每加入一个数字就检查是否 中是否有与其和为 的数字,有则返回。 注意 在`HashMap`中的存储方式是哈希表,所以查找速度会很快。 public List threeSum(int
阅读全文
摘要:总结要点: 1. 有些题如果想不出“最优解”,可以用O(n)的空间复杂度换区简单的解法,比如克隆链表; 2. 对链表操作时,不管是反转还是拼接, 注意将尾节点的后续节点设置为null,不要怕多余,因为可鞥有未考虑到的情况形成回环 ; 3. 对于代码 等价于 ,复制顺序是从右向左的; 4. ,顺序是从
阅读全文
摘要:总结 对链表的操作主要分为两种 : 1. 多个指针配合操作节点,一般空间复杂度低; 2. 递归操作; 3. 还可以使用java内置的数据结构,比如 等等; 其他要点 : 1. 对一个位置的删除和插入,都需要知道前一个节点; 1. 虚头部用于保留“前一个节点”; 2. 节点赋值可以转移“前一个节点位置
阅读全文