KMP ···package newcoder;public class KMP { /** * 判断str1中是否有str2,如果有返回在str1中的开始下标 * * @param str1 * @param str2 * @return */ public int getIndex(String str1, Str...
异常 异常Throwable ->Error: 是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常...
并发编程实战 在并发程序中,使用和共享对象的一些最有效的策略:线程限制:一个线程限制的对象的,通过限制在线程中,而被线程占用,且只能被占有她的线程修改共享只读:一个共享的只读对象,在没有额外同步的情况下,可以被多个线程并发的访问,但是任何线程都不能修改它,共享只读对象包括可变对象和高效不可变对象。共享线程安全:一个线程安全的对象在内部进行同步,所以其他线程无须额外的同步,就可以通过公共接口随意访问它。...
classPath与classPath-含义与区别 classPath:src路径下的文件在编译后会放到WEB-INF/classes路径下吧。默认的classpath是在这里。直接放到WEB-INF下的话,是不在classpath下的。用ClassPathXmlApplicationContext当然获取不到。 如果单元测试的话,可以在启动或者运行的选项里指定classpath的路径的。classpath是指 WEB-INF文件夹下的c...
索引优化 应用WHERE语句的条件 在索引中使用where条件来过滤不匹配的记录,在存储引擎层过滤完成 使用索引覆盖扫描(Extra中出现了Using index)来返回记录,直接从索引中过滤不需要的 记录并返回命中结果,这是在MySQL服务层完成的,但无须再回表查询记录。 从数据表中返回记...
翻薄饼 /** * @Author JH * @CreateDate 18-6-12 * @Description 翻薄饼 有n张大小各不相同的薄饼,一张叠在另一张上面 将大的放在下边, * 先查找最大的数,如果这个数在最后,不用进行操作,如果这个数在第一位,只需要翻一次,即数组整体换位, * 否则要进行两次交换,第一次将这个数换到第一位,然后再转至数组,使得这个数变为最后一个 */pub...
二叉查找树中删除一个节点 import java.util.Stack;/** * @Author JH * @CreateDate 18-6-11 * @Description 在二叉查找树中删除一个节点 * 1.如果该节点是叶子节点 删除该节点 * 2.如果该节点有左子树 将左子树的根节点代替该节点 * 3.如果该节点只有右子树 将右子树根节点代替该节点 * 4.既有左节点又有右节点,用右节点代替该...
插值查找 import java.util.Arrays;/** * @Author JH * @CreateDate 18-6-11 * @Description 插值查找 */public class InsertSearch { /** * * @param array 待查找的数组 * @param n 查找的值 * @param lef...
约瑟夫斯问题 package com.dugstudio.practiceBook;/** * @Author JH * @CreateDate 18-6-10 * @Description 约瑟夫斯问题 */public class JosephusProblem { /** * 当n为奇数时f(n)=2*f((n-1)/2)+1 * 当n为偶数时f(n)=2*f(n...
两个链表的第一个公共节点 package com.dugstudio.SwordToOfferBook.Singleton.Interview;/** * @Author JH * @CreateDate 18-6-10 * @Description 两个链表的第一个公共节点 */public class FindFirstCommonNode { public ListNode FindFirstC...
数组中的逆序对 package com.dugstudio.SwordToOfferBook.Singleton.Interview;import java.util.Arrays;/** * @Author JH * @CreateDate 18-6-10 * @Description 数组中的逆序对 */public class InversePairs { /** * ...
判断该数组是不是某二叉搜索树的后序遍历的结果 /** * @Author JH * @CreateDate 18-6-9 * @Description */public class VerifySquenceOfBST { //方法一 public boolean VerifySquenceOfBST(int [] sequence) { if (sequence==null||sequence....
判断给定出栈序列是否为该给定进栈次序的弹出顺序 package com.dugstudio.SwordToOfferBook.Singleton.Interview;import java.util.Stack;/** * @Author JH * @CreateDate 18-6-9 * @Description 判断给定出栈序列是否符合 进栈次序的出栈可能 * 利用辅助栈 */public class IsPopOrde...
常数时间内查找栈中最小的元素 import java.util.Stack;/** * @Author JH * @CreateDate 18-6-9 * @Description 栈中最小的元素 */public class MinStack <E extends Integer>{ private Stack<E> minStack=new Stack<E>();...
反转链表 package com.dugstudio.SwordToOfferBook.Singleton.Interview;/** * @Author JH * @CreateDate 18-6-8 * @Description 反转链表 */ public class ReverseList { public Node ReverseList(Node head){ ...
在O(1)时间内删除链表节点 package com.dugstudio.SwordToOfferBook.Singleton.Interview;/** * @Author JH * @CreateDate 18-6-8 * @Description 在O(1)时间内删除链表节点 */class Node{ public Integer value; public Node next;}pu...
打印小于n位的所有数字 package com.dugstudio.SwordToOfferBook.Singleton.Interview;/** * @Author JH * @CreateDate 18-6-8 * @Descriptionv 从1 打印n位数 eg:1,2,3...,999...999 */public class Print1ToMaxOfNDigits { public ...
二进制反射格雷码 幂集 import java.util.ArrayList;import java.util.List;/** * @Author JH * @CreateDate 18-6-7 * @Description 二进制反射格雷码 幂集 */public class BRGC { private List<String> l1; public List<St...
字典序的全排列 import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * @Author JH * @CreateDate 18-6-7 * @Description 字典序的全排列 */public class LexicographicPermute { privat...