- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 设计模式
一.设计模式一般分为三种:1.创建型模式:这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Build...
2019-07-30 20:22:47 125
转载 Map源码解析
1.HashMap简介HashMap底层数据结构在1.8以前为数组+链表在1.8以后为数组+链表+红黑树HashMap底层有一个数据结构Node,并且用node结构来存储key和valuestatic class Node<K,V> implements Map.Entry<K,V> { final int hash; final K ...
2019-07-28 22:25:37 124
原创 集合框架
一. ArrayList简介1)ArrayList是基于数组的动态扩容的一种数据结构,该类封装了一个动态再分配的Object[]数组,每一个类对象都有一个capacity属性,表示它们所封装Object[]数组的长度,当向ArrayList中添加元素时,该属性值会自动增加。如果ArrayList中添加大量元素,可使用ensureCapacity方法一次性增加capacity,可以减少增加重分配的...
2019-07-28 12:18:58 84
原创 数组中最长连续序列
//先排序,再根据是否连续来解,时间复杂度为o(nlogn) //用Map可以使时间复杂度为o(n) public int longestConsecutive(int[] arr){ if(arr == null || arr.length == 0) return 0; int max = 1; HashMap<Integ...
2019-07-24 23:20:59 175
转载 关于java类加载器
1.类加载过程JVM加载Class文件到内存的方式:一是隐式加载:继承或引用某个类时,有JVM负责加载;二是显式加载:在代码中调用loadClass(),Class.forName,ClassLoader的findClass方法等,显式加载中也可能包含隐式加载;- ClassLoader的重要方法:findClass:主要由URLClassLoader实现,根据URLClassPat...
2019-07-24 17:35:34 129
转载 关于AccessController.doPrivileged
AccessController.doPrivileged是一个在AccessController类中的静态方法,允许在一个类实例中的代码通知这个AccessController:它的代码主体是享受"privileged(特权的)",它单独负责对它的可得的资源的访问请求,而不管这个请求是由什么代码所引发的。这就是说,一个调用者在调用doPrivileged方法时,可被标识为 “特权”。在做访问控...
2019-07-24 17:11:53 173
原创 最小编辑代价
public int minCost1(String str1, String str2, int ic, int dc, int rc){ if(str1 == null || str2 == null){ return 0; } int[][] dp = new int[str1.length()+1][str2.leng...
2019-07-22 22:26:06 133
原创 子数组异或和为0最多的划分
//思路:1.arr上做分割,则dp记录从左到右每增加一个数划分得到的最大划分值//对于第i个数的怎么求出呢: //1.当i-1最后子数异或和不为0时,dp[i] = dp[i-1] //2.当i-1为最后异或和时,dp[i] = dp[k-1]+1, K为上次距离i-1最近的一组异或和的 //最后一个数,则上一个异或和个数为dp[k-1],最近一次为arr[k....i...
2019-07-21 23:40:18 874
原创 最长公共字符串问题
//1.返回str1和str2的最长公共子序列 public int[][] getdp(char[] ch1, char[] ch2){ int[][] dp = new int[ch1.length][ch2.length]; dp[0][0] = ch1[0] == ch2[0] ? 1 : 0; for(int i = 1; i &l...
2019-07-21 23:04:33 132
原创 redis常用命令
一:字符串字符串有三种类型:字节串,整数,浮点数(double同精度)1.2.列表一些常用的列表命令阻塞式的列表弹出以及在列表之间移动元素以上阻塞式的命令最常见的用列就是消息传递和任务队列3.集合一些常见的集合命令2.用于组合和处理对各集合的redis命令4.散列用于添加和删除键值对的散列操作redis散列的更高级操作hincrby 和 hincrbyfl...
2019-07-21 21:01:44 90
原创 数组最长递增子序列
public class MaxList { //给定arr,返回arr,的最长递增子序列 //下面该方法对arr中左右子序列从左到右找出每个位置处的最大最序列个数 public int[] getdp(int[] arr){ int[] dp = new int[arr.length]; for(int i = 0; i < arr...
2019-07-17 23:13:43 333
原创 mirrors的前序后序中序遍历
//morris遍历 //实现时间复杂度为o(n)空间复杂度为O(1) //首先来对整个树走一遍 通过null节点来返回向上的节点, public void morris(TreeNode head){ if(head == null) return; TreeNode cur = head; TreeNode mostRig...
2019-07-01 21:22:31 1057
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人