- 博客(4)
- 收藏
- 关注
原创 牛客网BAT算法精讲总结2-字符串(KMP算法详解)
1. kmp算法kmp算法是字符串匹配经典算法。 字符串匹配算法复杂度为 O(m*n), 而kmp算法可以降到 O(m+n) 算法思路: 这个算法的切入点在于,当我们进行匹配,匹配到某个字符不一样时,前面匹配过的是字符 模式串和主串是一样的,即比如 主串: abaaabab 模式串: abab 假设我们把模式串分为三部分, 最长前缀+中间+最长后缀,(这里最长前缀和最长后缀...
2018-03-31 17:17:02 758
转载 Java虚拟机:JVM内存分代策略
转自: https://www.cnblogs.com/fangfuhai/p/7206944.htmlJava虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。为什么要分代?堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中。给堆内存分代...
2018-03-14 16:25:27 396
原创 实现死锁和生产者消费者
死锁程序:public class TestDeadLock implements Runnable { public int flag; static Object o1 = new Object(); static Object o2 = new Object(); public void run() { System.out.pri...
2018-03-01 22:21:54 977
原创 判断链表是否有环并求环的入口和环的长度
方法:求链表是否有环,最直观的方法是从头结点的地址开始,把下一个地址都取出来,然后比对,是否有相同的。但这个方法需要两两比较,算法时间复杂度较高。更好的一个做法是快慢指针(慢指针一次前进一个地址,快指针一次前进两个地址)同时从头结点出发,只有链表有环存在,则它们必定会相遇。快慢指针算法有一个注意点,慢指针进入环之前,快指针可能已经在环中绕了几次圈了。首先比较简单的是求环的长度,当快慢指...
2018-03-01 10:15:13 573
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人