随笔分类 - 算法与数据结构
摘要:写在前面 学习和掌握红黑树,不是一朝一夕之功。我也看到很多优秀的红黑树讲解之作,例如: 30张图带你彻底理解红黑树 面试常问:什么是红黑树? 不过篇幅太长了,特别难记住重要的点,所以自己又整理了一下。 记性质 性质1:“红黑树”顾名思义,由红色结点和黑色结点组成。每个结点要么是红色结点,要么是黑色结
阅读全文
摘要:JDK1.7 中 HashMap 多线程成环问题,几乎已经成了Java程序员人人需要了解的知识了,本文就带大家来一切重现一下 HashMap 死循环 。
阅读全文
摘要:DelayQueue 的性质:
1. 它是一个线程安全的队列。
2. 包含 PriorityQueue 的性质。
3. 放入该队列的元素必须实现 Delayed 接口
4. 从该队列取出对象时,需要询问对象的执行延迟。即队头不为 null 条件还不充分,还需要剩余延迟 delay <= 0,对象才能正常出队。这点比较特殊。
阅读全文
摘要:题目 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4 交换
阅读全文
摘要:解析Java源码之优先级队列 PriorityQueue。优先级队列的底层数据结构为“小根堆”。为了保持小根堆,常见的调整操作包括 siftUp 和 siftDown。siftUp 保证的是将元素 x 存放到位置 k,位置 k 之前的所有元素符合小根堆的性质。siftDown 是为了保证将元素 x 存放到位置 k 时,以 k 为“根节点”的子树符合小根堆的性质。
阅读全文
摘要:LRU 是 Least Recently Used 的缩写,即最近最少使用。Java中常常用 LinkedHashMap 来实现 LRU 缓存淘汰。本文给大家展示一下 SpringMVC 框架和 MyBatis 框架是如何做的。
阅读全文
摘要:使用暴力解法,分治法和动态规划解决区间连续最大和的问题。
阅读全文