前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%。通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息。 我们可以看到所有的堆栈都指向了一个名为 validateUrl 的方法,这样的报错信息在堆栈中一共超过 100 处 ...
分类:
其他好文 时间:
2019-01-16 19:47:55
阅读次数:
201
五大常用算法之一:分治算法https://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741370.html五种常用算法之二:动态规划算法https://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741374.html五大常用算法之三贪心算法https://www.cnblogs.com/stev
分类:
编程语言 时间:
2019-01-16 10:25:37
阅读次数:
214
/*给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] */ /* 思路:回溯剪枝 时间复杂度为O(n2^n) 如果剪... ...
分类:
其他好文 时间:
2019-01-14 23:12:58
阅读次数:
244
这是我看刚刚看的剑指offer上的一道面试题:用递归实现链表从后往前输出(c或c++), 我突然想用java试试,然后就有了这样一个小算法题: 任意一个一维数组,用递归实现从右往昨打印输出,下标从0开始, 比如一个数组:{1,2,3}打印:3,2,1 首先分析一下这个小题:从0开始进入递归,递归到数 ...
分类:
其他好文 时间:
2019-01-14 23:01:16
阅读次数:
191
1. KMP 算法 谈到字符串问题,不得不提的就是 KMP 算法,它是用来解决字符串查找的问题,可以在一个字符串(S)中查找一个子串(W)出现的位置。KMP 算法把字符匹配的时间复杂度缩小到 O(m+n) ,而空间复杂度也只有O(m)。因为“暴力搜索”的方法会反复回溯主串,导致效率低下,而KMP算法 ...
分类:
编程语言 时间:
2019-01-11 11:40:02
阅读次数:
227
正则表达式是开发人员处理文本的好选择,在不同的语音之间有一定的共通性,也是一个开发人员必备的基础知识之一,在此特结合人民邮电出版社的《正则表达式必知必会》一书,以java语言实践书中的例子,记录于博客园以备查阅。 就按照《正则表达式必知必会》,以下简称《正必》一书的章节目录进行实践。 我使用的jav ...
分类:
编程语言 时间:
2019-01-08 17:51:28
阅读次数:
150
设计一个支持以下两种操作的数据结构: search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 或 。 可以表示任何一个字母。 示例: 说明: 你可以假设所有单词都是由小写字母 组成的。 解题思路 直接用字典树(trie)即可,至于 匹配符直接利用回溯即可。 python3 inc ...
分类:
其他好文 时间:
2019-01-02 13:59:30
阅读次数:
183
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 思路: 对于本题,前提只有 一次 1阶或者2阶的跳法。 a.如果两种跳法,1阶或者2阶,那么假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1); b.假定第一次跳的 ...
分类:
其他好文 时间:
2018-12-30 20:33:15
阅读次数:
205
AVL树即平衡二叉树,每个结点有一个平衡因子,即左子树高度减去右子树高。每插入一个结点时,从根部开始按二叉排序树的方法,与节点不断比较,按大小向左右子树插入。在与最后的节点比较后插入时,若有兄弟节点,说明树的高度没有变,此时依然平衡;若没有,则小范围内树高改变了,需回溯,依次更改祖先的平衡因子,若遇 ...
分类:
其他好文 时间:
2018-12-30 12:07:34
阅读次数:
236
线段树嘛,很好用的数据结构处理方法但是有个缺点 代码长,不好理解,但是很强大 其建树方法是递归建树,调用栈来运行,从上至下,有人说,这类似一个回溯的过程 其实也不然,标记下放后,标记仍需上浮,一上一下,自然速度会很大的降低 那么有没有从下而上的操作呢? zkw神犇出现了,“哈哈,我会” zkw线段树 ...
分类:
其他好文 时间:
2018-12-30 11:07:17
阅读次数:
330