kmp算法 public static void main(String[] args) { String s = "ABCDABDEBBC ABCDAB ABCDABCDABDE"; String p = "ABCDABD"; System.out.println(match(s, p));}public static List<Integer> match(S...
单例模式的n种写法 单利模式模式1public class Singleton1 { private static Singleton1 singleton1; private Singleton1() { } //多线程不安全. public static Singleton1 getInstance() { if (singleton1 == ...
ReentrantLock的源码注解 package 源码注解;/* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * *//* * * * * * * Written by Doug Lea with as...
redis的zset为什么用调表不用红黑树 跳表和红黑树的区别共同点:两者插入删除,删除,查找以及迭代输出时间复杂度红黑树和跳表的时间复杂度是一样的跳表在区间查询的时候效率是高于红黑树的,跳表进行查找O(logn)的时间复杂度定位到区间的起点,然后在原始链表往后遍历就可以了 ,其他插入和单个条件查询,更新两者的复杂度都是相同的O(logn)跳表的代码实现相对于红黑树更容易实现,跳表更加灵活,他可以通过改变索引构建策略,有效平衡执行...
AQS注释 package com.java.lj;import sun.misc.Unsafe;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import java.util.concurrent.TimeUnit;import AbstractOwnableSynchronizer;i...
滑动窗口计算最长不重复串 滑动窗口 a = "abcabcbcbba"首先有一个字符串我们用hashset来作为滑动窗口set<Character> slide =new HashSet();用一个i表示窗口头,j表示窗口尾巴max来记录最长窗口 ij a = "a b c a b c b c b b a" int n = s.length(); Set<Character>...
按层次遍历树结构 解法1package tree.leveltraversal;import tree.Node;import tree.myavl.BalanceTree;import java.util.LinkedList;import java.util.Queue;/** * Created by lijie35 on 2020-01-21 10:45 AM . */public ...
合并链表 package linkedlist;/** * Created by lijie35 on 2020-01-20 3:13 PM . */public class CombineList { public static void main(String[] args) { Node n1 = new Node(1); Node n3 = new ...
翻转树 package tree.reverseTree;import tree.Node;import tree.myavl.BalanceTree;/** * Created by lijie35 on 2020-01-20 2:15 PM . */public class ReverseTree { public static void main(String[] args)...
链表入口解法1 解法1不知道什么原理。我写着写着就出来了,测试过也没有问题,有知道原理的可以告诉我package linkedlist;/** * Created by lijie35 on 2020-01-20 10:43 AM . */public class ListEntrance { public static void main(String[] args) {// ...
链表找环的入口 package linkedlist;/** * Created by lijie35 on 2020-01-20 10:43 AM . */public class ListEntrance { public static void main(String[] args) { Node h1 = new Node(0); Node h2 = ne...
快慢指针判断链表成环的问题 package linkedlist;/** * Created by lijie35 on 2020-01-20 10:23 AM . */public class FastSlowPoint { public static void main(String[] args) { Node h1 = new Node(0); Node h2 = n...
斐波那契数列解法 递归写法,效率低package algorithm;/** * Created by lijie35 on 2020-01-19 3:21 PM . */public class Fibonacci { public static void main(String[] args) { System.out.println(fib(1)); } ...
二分查找 package sort;/** * Created by lijie35 on 2020-01-19 1:55 PM . */public class BinarySearch { public static void main( String[] args) { int[] arr = {1, 2, 3, 5, 6, 7,13,15...
翻转连表 package linkedlist;/** * Created by lijie35 on 2020-01-17 5:04 PM . */public class ReverseNode { public static void main(String[] args) { System.out.println(); Node node = ne...
归并排序 package sort;import java.util.Arrays;/** * Created by lijie35 on 2020-01-17 2:49 PM . */public class MergeSort { public static void main(String[] args) { // int arr[] = new int...
快排算法 package sort;import java.util.Arrays;/** * Created by lijie35 on 2020-01-17 12:31 PM . */public class Quicksort { public static void main(String[] args) { //int[] arr = {3, 45, 7,6,...
冒泡排序 package sort;import java.util.Arrays;public class BubblleSort { public static void main(String[] args) { int[] arr = {3, 45, 6, 8, 9, 2}; BubblleSort.sort(arr); } /**...
插入排序 package sort;import java.util.Arrays;/** * Created by lijie35 on 2020-01-17 11:21 AM . */public class InsertionSort { public static void main(String[] args) { int [] arr={3,45,6,8,9...
最小堆 就是最大堆的条件反过来package heap;import java.util.Arrays;public class SmallHeap { public static void main(String[] args) { SmallHeap smallHeap = new SmallHeap(); int[] a = new int[]{5,...