年度归档: 2020年

107 篇文章

thumbnail
LeetCode509. 斐波那契数
一、介绍 斐波那契数应该是动态规划的入门题,看到过很多次了。解法一般分为两种,自下而上和自上而下+备忘录(优化重复子问题) 使用leetcode的idea插件 二、题目 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,   F(1) = 1…
thumbnail
Java:ThreadLocal
ThreadLocal结构图 结构变化后带来的好处 早期ThreadLocalMap里的Entry较多,每个线程都有一个,占用空间大 线程销毁时,后期的ThreadLocalMap将会销毁,释放资源 设置默认值,也就是当前线程和ThreadLocal对象还未往ThreadLocalMap里存数据时 ThreadLocal<String>…
thumbnail
Java引用:强、软、弱、虚
Java引用分为强引用、软引用、弱引用、虚引用 一、强引用 public class M { @Override protected void finalize() throws Throwable { System.out.println("m.finalize"); super.finalize(); } } public …
thumbnail
利用脚本定时提交笔记
使用Markdown来做笔记,但每次在家里要使用时,都要远程公司,提交笔记到git,再在家里电脑上拉取,这是个重复的过程。重复==可以用程序解决 于是写了个脚本,电脑启动时拉取,每天晚上9点提交 之前在工作中遇到切换代码分支后,每次都要构建很多组件,也是写了个脚本一键执行 Windows步骤如下 1. 提交脚本 set codePath=D:\wo…
剑指 Offer 16. 数值的整数次方
1. 要点 这道题一看就是考优化,尝试了很多次才过了,要点的话,就是用数组存结果时(打表),创建的数组太大,空间要求过不了,并且没有充分利用这个数组,很多元素都是空的.想了想这个数组的使用场景,用下标获取结果,那不就是Map嘛,要多大,就用多大,这下就不会浪费空间了 2. 题目 实现函数double Power(double base, int e…
thumbnail
LeetCode99. 恢复二叉搜索树
1. 要点 二叉搜索树的特点:中序遍历结果递增,可用来做验证 复习下中序遍历(太久没写,写成前后序遍历的先push去了) 2. 题目 给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。 进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出一个只使用常数空间的解决方案吗? 3. 示例 1: …
thumbnail
动态代理+读写锁实现线程安全的HashMap缓存工具类
背景 jdk1.8之前是没有线程安全的集合工具类,例如currentHashMap,那怎样实现高效、线程安全的集合工具类呢? 可以利用读写锁实现线程安全,动态代理帮助集合作为工具类,产生更多的使用场景,例如缓存 代码 1. 创建缓存基类和子类 基类里的读写锁 private ReadWriteLock readWriteLock = new Ree…