- 博客(7)
- 收藏
- 关注
原创 KMP字符串匹配算法
对于字符串的匹配,传统的暴力求解的方式BF算法具有很多的缺点,关键就是在于主串需要回溯的问题,导致算法的时间复杂度是O(n*m),而KMP算法可以完成线性的时间复杂度O(m+n).KMP算法的核心就是next数组,当模式匹配串失配的时候,next数组指示应该用模式匹配串中的那个字符来进行下一轮匹配(也就是模式匹配串回溯的位置)。而next数组的产生是取决于模式匹配串自身。这里考虑两种情况:1. 当...
2018-07-13 20:22:17
148
转载 深度理解Java虚拟机
转载请注明出处:https://i.cnblogs.com/EditPosts.aspx?postid=5515245一、运行时数据区域 线程隔离:线程隔离的意思,就是给不同的线程多分配的资源用,以做到不争用 线程共享:线程共享就是资源只有一个没有办法分配更多,只能共享 Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆...
2018-07-06 11:32:43
402
原创 LeetCode merge interval 和 insert interval
1. merge interval有很多个区间。判断相邻区间是否有重叠并合并重叠的区间。这个题因为没有说明坚哥是否为有序的,所以我们要进行排序,但是由于interval对象是自己定义的,所以需要重写comparator 接口,定义排序方法,然后比较前后两个坚哥是否重叠,如果重叠则创建一个新的interval对象,然后更新对象的start以及end属性。import java.util.*;pub...
2018-05-15 21:53:43
139
原创 Java基础知识总结
类与对象的关系:1、类是一类具有相同属性的事物的统称,是一种抽象。2、对象是类的具体体现,又称实例。3、类是一种静态的概念,而对象是一种动态的机制。属性:Java中的属性一般分为类属性、实例属性、局部变量类属性:声明为static的属性,在整个过程中只进行一次初始化,在内存中只开辟一个空间,不论在哪儿调用,值保持一致。一旦被修改,所有引用它的地方都会跟着修改。一般直接通过类名进行调用。实力属性:实...
2018-05-15 18:58:35
121
原创 Java类的加载以及对象的构造
Java程序的执行流程:.java文件经过编译形成 .class文件,然后在不同的系统平台上进行运行。流程:①首先加载class文件,在栈内存中创建类对象,并对类中由static关键字声明的数据进行初始化并且只进行初始化一次② new 类名() 在Java堆内存中分配空间③执行所有方法外定义的变量的初始化④执行构造器(不论变量放在哪儿,都会先于任意一个方法的执行前执行,包括构造方法,而构造方法是一...
2018-05-15 16:06:47
98
原创 约瑟夫环2
问题描述:有n个人站成一列。并从头到尾给他们编号,第一个人编号为1。然后从头开始报数,第一轮依次报1,2,1,2...然后报到2的人出局。接着第二轮再从上一轮最后一个报数的人开始依次报1,2,3,1,2,3...报到2,3的人出局。以此类推直到剩下以后一个人。现在需要求的即是这个人的编号【1 2 1 2 …1 2 31 2 3 ….1 2 3 4 1 2 3 4….1 2 3 4 5 1 2 3 ...
2018-04-17 21:43:46
822
原创 约瑟夫环的问题1
n个人做成一圈,顺时针由1开始给他们编号,然后由第一个人进行报数,数到m的人出局,接着下一个人又从1开始报数,只剩最后一个人的时候求这个人的编号特例:当m = 2的时候① n = 2^k如果只有2个人,显然剩余的为1号如果有4个人,第一轮除掉2,4,剩下1,3,3死,留下1 。如果是8个人,先除去2,4,6,8,之后3,7,剩下1,5,除去5,又剩下1了递推,起始我们仔细分析也就是每次除去一半的元...
2018-04-17 20:34:06
222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人