
算法
文章平均质量分 85
小木leo
努力学习中,coding不仅仅是coding
展开
-
后缀求可重叠最长重复子串
假设我们有这样的字符串及数组:String str="banana";boolean flag[]=new boolean[str.length];flag为后缀数组,用于标记子串位置for(int i=0;i<str.length;i++) flag[i]=i;后缀:从某个位置i开始到整个串末尾结束的一个特殊子串flag[i]指向字符串第i个位置起始的子串原创 2016-04-03 20:32:26 · 673 阅读 · 0 评论 -
分类找单词集的变位词集java
题目:给定一本英语单词词典,请找出所有的变位词集。例如,因为“pots”, “stop”,“tops”相互之间都是由另一个词的各个字母改变序列而构成的, 因此这些词相互之间就是变位词。String str[]={"fsda","stop","sdfa","asdf","tops","post","hello","llohe","lolhe","world","ptso","dlrow"};原创 2016-04-04 09:00:34 · 789 阅读 · 0 评论 -
NYOJ35-表达式求值(逆波兰式)java
表达式求值描述ACM队的mdd想做一个计算器,但是,他要做的不仅仅是一计算一个A+B的计算器,他想实现随便输入一个表达式都能求出它的值的计算器,现在请你帮助他来实现这个计算器吧。比如输入:“1+2/4=”,程序就输出1.50(结果保留两位小数)输入第一行输入一个整数n,共有n组测试数据(n每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式原创 2016-05-23 18:52:50 · 2578 阅读 · 0 评论 -
KMP字符串匹配算法解析
kmp算法为非常经典的字符串匹配算法。下面先讲解下最原始的字符串匹配方法,也就是暴力求解。时间复杂度为O(m*n)下面举个例子讲解下暴力大法如 12314123123b match为123123首先从第一个位置str[0]开始依次与match开始进行比较str的第0、1、2、3与match 0、1、2、3匹配,但是4与match[3]不匹配,即str[0]位置出发不与matc原创 2016-07-26 09:07:02 · 1659 阅读 · 0 评论 -
二叉查找树(二叉排序树)BST解析
二叉排序树又名二叉查找树,不同于普通的二叉树,该形式可以使二叉树有序,使其左孩子一定小于该节点值,右孩子一定大于该节点值,于是其中序遍历便是一个递增的数列。同时故其查找效率为O(lgN)即二叉树的高度。下面首先介绍下BST树的查找算法。BST树查找很简单,首先根节点,如果比该节点值大从其右孩子中查找,如果比其小则从其左孩子中查找。直到找到或者该节点为空为止。下面是查找的代码原创 2016-07-29 16:36:21 · 1138 阅读 · 0 评论 -
疯狂九大排序及其详解
排序算法是我们最常用的算法,之前听牛客大牛左大神讲解后自己详细的整理了一遍,感觉比以前学的深刻很多。下面共享给大家九大经典排序算法是面试必备的算法知识。九大算法可以根据时间复杂度、空间复杂度、稳定性有不同的划分。本文先基于时间复杂度对九类经典排序算法进行简要介绍和其代码实现。其中会夹杂稳定性和空间复杂度分析。首先介绍时间复杂度为。其中包括冒泡排序、选择排序、插入排序(1)、冒泡排序原创 2016-10-13 15:54:55 · 950 阅读 · 0 评论